C++学习4

姓名:张立斐   学号:19020700001   学院:电子工程学院 

转自:https://blog.csdn.net/lvliang2017232003/article/details/85645040

【嵌牛导读】C++学习

【嵌牛鼻子】C++

【嵌牛提问】如何学习C++?

【嵌牛正文】

1、strcmp( ):比较两个字符串,相同返回0;第一个字符串按字母顺序排在第二个字母之后将返回负值;

2.类型别名:

#define BYTE char  //使用预处理器,用char替代所有的BYTE,BYTE是char的别名

typedef char byte  //使用关键字typedef ,byte是char的别名。typedef不会创建新类型

3. C++11中基于范围的for循环,对数组(或vector,array)的每个元素执行相同的操作:

double prices[5]= {4.99,5.6,2.13,2.69,7.34};

for (double x : prices)  {cout<<x<<std::end;}

for (double &y : prices)  { y=y*0.8;  } // 要修改数组元素时,循环变量要取地址,改为&y

4、cin() 忽略空格和换行符,cin.get()中包含空格、制表符、换行符。

  cin.get(name,size).get();

5、检测文件尾(EOF) :检测到EOF,cin.eof() 或cin.fail() 将返回bool值true,否则返回bool值 false;

6.字符输入做法:

char ch; cin.get(ch);  while (cin.fail()==false) { ....  cin.get(ch); }  //或者while (!cin.fail()) 或while (cin)

char ch;  while (cin.get(ch))  { ... }

int ch; ch=cin.get();  while ( ch!=EOF )  { ...  ch=cin.get(); }

int ch;  while((ch = cin.get() ) != EOF) {    }

更常用,拼接字符串:cin.get(ch1).get(ch2);

7.逻辑运算符||  逻辑运算符&&

!的优先级大于逻辑运算符和关系运算符(> < =), &&优先级大于|| ,关系运算符优先级大于 &&,||

8.定义二维字符串数组方式:

(1)char指针数组: char * cities[3]={"Beijing", "TianJin", "ShangHai"};

(2)char数组的数组 char  cities[3][10]={"Beijing", "TianJin", "ShangHai"};

(3)string对象数组 string  cities[3]={"Beijing", "TianJin", "ShangHai"};

希望字符串可以修改的情况下,string类可以自动调节大小更方便。

9.switch语句,while语句中,将int值与枚举量标签进行比较时,枚举量将提升为int。

switch语句中每一个case的标签必须是int或char,还必须是常量

10.continue :跳出循环剩余部分,执行新的一轮循环

    break :跳出循环剩余部分,不在执行循环语句

switch一般与break组合使用

int chice[3]={0,1,2};

switch (choice){case 0: ... break;  case 1: ... break; case 2: ... break;  }

11.int n[6];  for(i=0;i<6;i++){

cout<<"round "<<i+1<<" : ";

while(!(cin>>n[i])){  //当输入不是字符时,执行下面循环

cin.clear(); // 如果输入的是字符,不是数字时,应利用cin.clear() 重置cin以接受新的输入。

while (cin.get() != '\n')  continue;  //while中用cin.get() 读取行尾之前的输入,从而删除这行错误输入

cout<<"Pleae enter a number:  ";

}  }

12.写入文本文件文件输出:必须包含头文件 #include<fstream>,需要声明一个或多个ofstream对象,将ofstream对象与文件关联用open()方法。使用完文件用close()关闭。可以使用ofstream对象和运算符<<来输出各种类型的数据。(和cout类似)


#include "stdafx.h"

#include<iostream>

#include<fstream>

int _tmain()

{

using namespace std;

char automobile[50];

int year;

double a_price,d_price;

ofstream outfile; //创建一个输出的ofstream对象,可以像使用cout一样使用outfile

outfile.open("carinfo.txt"); //关联的文件,创建一个名为carinfo.txt的文件

cout << "Enter the make and model of automobile: ";

cin.getline(automobile, 50);

cout << "Enter the model year: ";

cin >> year;

cout << "Enter the original asking price: ";

cin >> a_price;

d_price = 0.913*a_price;

cout << fixed;

cout.precision(2);  //设置显示精确度为2位并返回上一次的设置。

cout.setf(ios_base::showpoint); //显示浮点数小数点后的0;

cout << "Make and Model: " << automobile << endl;

cout << "Year: " << year << endl;

cout << "Was asking $" << a_price << endl;

cout << "Now asking $" << d_price << endl;

outfile << fixed;  //可以像使用cout一样使用outfile

outfile.precision(4);  设置输出精确度为4位并返回上一次的设置。

outfile.setf(ios_base::showpoint); 

outfile << "Make and Model: " << automobile << endl;

outfile << "Year: " << year << endl;

outfile << "Was asking $" << a_price << endl;

outfile << "Now asking $" << d_price << endl;

outfile.close();  //关闭文件

return 0;

}

13.读取文本文件:必须包含头文件 #include<fstream>,需要声明一个或多个ifstream对象,将ifstream对象与文件关联用open()方法。使用完文件用close()关闭。可以使用ifstream对象和运算符>>来读取各种类型的数据。

可以使用ifstream对象和get()方法来读取一个字符。使用ifstream对象和getline()方法来读取一行字符。

使用ifstream对象和eof() 、fail()等方法来判断输入是否成功

ifstream对象本身作为测试条件时,如果最后一个读取操作成功,它将会被转化为bool值true.(和cin类似)

检查文件是否被成功打开用方法is_open();

#include "stdafx.h"

#include<iostream>

#include<fstream>

#include<cstdlib> //支持exit()

const int SIZE = 60;

int _tmain()

{

using namespace std;

char filename[SIZE];

ifstream infile;

cout << "Enter name of data file: ";

cin.getline(filename, SIZE);  //输入要读取的文件名

infile.open(filename);

if (!infile.is_open()) //检查文件是否被成功打开

{

cout << "Could not open the file" << endl;

cout << "Program terminating.\n";

exit(EXIT_FAILURE);

}

double value;

double sum = 0.0;

int count = 0;

infile >> value; //在循环外读取第一个值

while (infile.good()) //读取输入操作成功且未到达EOF

{

++count;

sum += value;

infile >> value;  //读取下一个值

}

if (infile.eof()) //判读是否达到EOF

cout << "End of file read.\n";

else if (infile.fail()) //可以检测EOF或类型不匹配

cout << "Input terminated by data mismatch.\n";

else

cout << "Input terminated by unkonwn reason.\n";

if (count == 0)

cout << "No data processed.\n";

else

{

cout << "Item read: " << count << endl;

cout << "Sum: " << sum << endl;

cout << "Average: " << sum / count << endl;

}

infile.close();

return 0;

}

infile >> value; //在循环外需进行一次读取

    while (infile.good()) //

    {  .......

          infile >> value;  //读取下一个值

    }

以上这一部分等效于

while (infile>>value)  //读取并测试是否成功

{ ...... }

————————————————

版权声明:本文为CSDN博主「lvliang2229」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/lvliang2017232003/article/details/85645040

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容

  • 原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/database/46...
    petit_prince阅读 7,653评论 0 2
  • #include #include<fstream> using namespace std; int main(...
    nit小星星阅读 744评论 0 0
  • 技术交流QQ群:1027579432,欢迎你的加入! 1.Cpp中的文件和流 到目前为止,已经使用了iostrea...
    CurryCoder阅读 522评论 0 1
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,532评论 28 53
  • 人工智能是什么?什么是人工智能?人工智能是未来发展的必然趋势吗?以后人工智能技术真的能达到电影里机器人的智能水平吗...
    ZLLZ阅读 3,770评论 0 5