姓名:张立斐 学号: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