由于已经学习过c++的基础课程,对于第一章节的内容就大致的过了一遍,对于以下几个不太熟悉或平常不太注意的方面又有了一些了解和掌握。
1.c++注释的种类:单行注释与界定符对注释。(之前在编写代码时没有编写注释的习惯,以后一定加强!!!)
单行注释:以双斜线(//)开始,以换行符结束,当前行双斜线右侧的所有内容都会被编译器忽略。
注释界定符:可以放置于任何允许放置制表符、空行符或换行符的地方,这种注释以/*开始,以*/结束,编译器将落在/*和*/之间的所有内容都当作注释,例:
/*
* 简单主函数:
* 读取两个数,求它们的和
*/
注:注释界定符不能嵌套,即一个注释不能出现在另一个注释之内,否则编译程序会报错,例:
/*
* 注释对/* */不能嵌套。
* “不能嵌套” 几个字会被认为是源码,
* 像剩余程序一样处理
*/
2.读取数量不定的输入数据,采用如下方式:
while(std::cin >> value)
sum += value;
当输入的值输入错误时结束输入, 输入错误即遇到文件结束符或一个无效输入。
从键盘键入文件结束符:对于如何键入文件结束符,不同操作系统有不同的约定。在Windows系统中,输入文件结束符的方法是敲Ctrl+Z(按住Ctrl键的同时按Z键),然后按Enter或Return键。在UNIX系统中,包括Mac OS X系统中,文件结束符输入是用Ctrl+D。
3.部分习题(以下代码均采用vs2017编译):
1.9:
#include <iostream>
using namespace std;
void main()
{
int val = 50;
int sum = 0;
while (val >= 50 && val <= 100)
{
sum += val;
++val;
}
cout<<sum<<endl;
system("pause");
return 0;
}
1.10:
#inlude <iostream>
using namespace std;
void main()
{
int val = 10;
while (val >= 0)
{
cout << val << endl;
--val;
}
system("pause");
return 0;
}
1.11:
#include <iostream>
using namespace std;
void main()
{
int val1, val2;
cout << "Please input two numbers: ";
cin >> val1 >> val2;
if (val1 >= val2)
{
int val = val2;
while ( val <= val1)
{
cout << val << endl;
++val;
}
}
else
{
int val = val1;
while ( val <= val2)
{
cout << val << endl;
++val;
}
}
system("pause");
return 0;
}
1.14:
在for循环中,循环控制变量和修改都在语句头部分形式较简洁,适用循环次数已知的情况;而对于while循环,循环控制变量一般在while语句之前定义及初始化,循环控制变量的修改一般在循环体中,形式不如for循环简洁,适用于循环次数未知的情况。
1.16:
#include <iostream>
using namespace std;
void main()
{
int val,sum = 0;
while (cin >> val)
{
sum += val;
}
cout << sum << endl;
system("pause");
return 0;
}
1.17:
如果输入的所有值都相等,则输出的结果也只会有一条;如果没有重复值,则输入多少个值就会有多少条结果。
1.22:
#include <iostream>
#include "Sales_item.h"
using namespace std;
int main()
{
Sales_item item, item_sum;
cin >> item_sum;
while (cin >> item)
{
item_sum += item;//默认输入ISBN相同
}
cout << item_sum << endl;
system("pause");
return 0;
}
1.23:
#include <iostream>
#include "Sales_item.h"
using namespace std;
int main()
{
Sales_item current_item, next_item;
int cnt = 1;
cin >> current_item;
while (cin >> next_item)
{
if (current_item.isbn() == next_item.isbn())
{
++cnt;
}
else
{
cout << current_item.isbn() << " has sold note " << cnt << endl;
cnt = 1;
current_item = next_item;
}
}
cout << current_item.isbn() << " has sold note " << cnt << endl;
system("pause");
return 0;
}
1.25:
运行书上所给出的程序,得到下面结果: