C++基础---C语言部分1
常变量:
const double pi = 3.14;
常变量必须在定义时赋值,它的值在程序运行过程中不会再改变。
位运算:
按位与(&):都是1为1,否则为0
按位或(|):有一位为1则是1,均为0才是0
按位异或(^):对应位不同,结果为1,对应位相同,结果为0
按位取反(~):
左移(<<):将a按二进制位向左移动n位,移出的最高位舍弃,最低位补0,相当于乘2操作。
右移(>>):将a按二进制位向右移动n位,移出的最低位舍弃,高位补0或者1,若是有符号的整型量,补符号位,若无符号则补0.
格式化输出:
1.操作符实现:
需要引入头文件 #include <iomanip>
setw(5):为每个输出数据项指定宽度。
cout<<setw(6)<<value<<value2<<endl; //将对value起作用,对后面的不起作用,对齐方式为右对齐
setprecision(6):指定浮点数的输出精度,即输出有效位数。
cout<<setprecision(5)<< fvalue << fvalue2 <<endl; //系统默认的有效数字的位数为6位,四舍五入,setprecision对fvalue2也起作用
dec | 置基数为10 | setiosflags(ios::fixed) | 固定的浮点显示 |
hex | 置基数为16 | setiosflags(ios::scientific) | 科学计数法 |
oct | 置基数为8 | setiosflags(ios::left) | 左对齐 |
endl | 插入换行符,并刷新流 | setiosflags(ios::right) | 右对齐 |
ends | 插入空字符 | setiosflags(ios::skipws) | 忽略前导空白 |
setfill(c) | 设填充字符为c | setiosflags(ios::uppercase) | 16进制数大写输出 |
setprecision(n) | 设显示小数精度为n位 | setiosflags(ios::lowercase) | 16进制数小写输出 |
setw(n) | 设域宽为n个字符 |
2.函数成员实现格式化输出:(即cout的对象函数)
cout.width(5):指定了输出项的域宽为5,与在变量前使用setw(5)效果等同。
cout.precision(5):设定浮点数的精度,该设定会保持到重新设定或程序的结束。
cout.setf(ios::fixed): 与setiosflags(ios::fixed)的功能相同。
与setf()功能相反的函数成员是unsetf(),用于清除已经设置的状态标志。比如:
cout.unsetf(ios::fixed | ios::left);
指定输入的域宽:cin.width(5)
cin与cout有类似的函数成员。
也可以使用setw(5)的方法。
读取一行:
char ch[80]; cin.getline(ch , 80); //cin.getline()将读取换行符之前的所有字符
读取一个字符:
char ch; cin.get(ch);//读取第一个字符,包括空格,回车,Tab等
1 char ch; 2 cin>>ch; //读取第一个字符,但是会跳过空格,Tab和Enter
跳过键盘缓冲区的字符:
cin.ignore(n , c); //cin跳过n个字符,或者是直到遇到字符c为止。
如果cin.ignore() 没有参数,则表示跳过键盘区的第一个字符。
char ch[5]; char ch2[10]; cout << "输入一个单词:"; cin >> setw(2) >> ch; //超出的部分会被截断 cin.ignore(20, '\n'); cout << "输入第二个单词:"; cin >> ch2; cout << "输入的单词为:"<< ch << "word" << endl; cout << "输入的第二个单词为:" << ch2 << endl;