2.5.1 风格
程序不仅仅是写给自己看的,小时候是老师教我们字如其人,现在程序也是。
(1)加上必要的空格,逗号,*,_,=等运算符之后都需要一个空格来使代码看上去更清楚。
(2)注释应当从文件开头开始。例如:
/*
* Programmer:xxxxxxx
*Complete:xxxxxxxx
*Instructor:xxxxxxxxxx
*Class:xxxxx
*Introduce:xxxxxxxxx
*/
2.6.2 表达式数据类型为int,当且仅当所有操作数均为int,混合型必为float
2.6.3 表达式在赋值前求值,被赋值变量类型不影响表达式元素及值。例如:
eg:
float a;
a=10/3;
cout<<a;
那么打印出a为多少?是3.33333吗?
错了,是3,因为10/3本来就是3
2.7.1 输入输出重定向
是一个新名词,但其实是个老概念……
运用操作系统命令将标准输入设备与输入文件(而不是键盘)关联,
以及,将标准输出设备与输出文件(而非屏幕)关联。
2.8.3 防止输入流中的残余(漏检错误)
...............
cout<<"enter your first name:";
cin>>name;
cout<<"enter the number of nickels:";
cin>>nickles;
cout<<"enter the number of pennies:";
cin>>pennies;
...............
会出现的某种错误结果(输入流残余):
enter your first name:Song Qiwen
enter the number of nickels:enter the number of pennies:
Good work Song!
Your collection is worth 210060 dollars and 0 cents
我们来看,输入完Song Qiwen之后Song被正确提取, 而Qiwen残余在输入流中,而输入流非空,
所以,C++试图从当前输入流中提取这些数据,而非等待用户输入(直接跳过完全不给我们输入
的机会),而又因残余的是字母,变量pennies和nickels是数值,则两变量维持不变,仍然是最初
的垃圾值。
程序不仅仅是写给自己看的,小时候是老师教我们字如其人,现在程序也是。
(1)加上必要的空格,逗号,*,_,=等运算符之后都需要一个空格来使代码看上去更清楚。
(2)注释应当从文件开头开始。例如:
/*
* Programmer:xxxxxxx
*Complete:xxxxxxxx
*Instructor:xxxxxxxxxx
*Class:xxxxx
*Introduce:xxxxxxxxx
*/
2.6.2 表达式数据类型为int,当且仅当所有操作数均为int,混合型必为float
2.6.3 表达式在赋值前求值,被赋值变量类型不影响表达式元素及值。例如:
eg:
float a;
a=10/3;
cout<<a;
那么打印出a为多少?是3.33333吗?
错了,是3,因为10/3本来就是3
2.7.1 输入输出重定向
是一个新名词,但其实是个老概念……
运用操作系统命令将标准输入设备与输入文件(而不是键盘)关联,
以及,将标准输出设备与输出文件(而非屏幕)关联。
2.8.3 防止输入流中的残余(漏检错误)
...............
cout<<"enter your first name:";
cin>>name;
cout<<"enter the number of nickels:";
cin>>nickles;
cout<<"enter the number of pennies:";
cin>>pennies;
...............
会出现的某种错误结果(输入流残余):
enter your first name:Song Qiwen
enter the number of nickels:enter the number of pennies:
Good work Song!
Your collection is worth 210060 dollars and 0 cents
我们来看,输入完Song Qiwen之后Song被正确提取, 而Qiwen残余在输入流中,而输入流非空,
所以,C++试图从当前输入流中提取这些数据,而非等待用户输入(直接跳过完全不给我们输入
的机会),而又因残余的是字母,变量pennies和nickels是数值,则两变量维持不变,仍然是最初
的垃圾值。