- 在输入输出的时候慎用while(cin>>n)的形式,因为要退出循环回车是没有用的,只能使用回车再ctrl+d/z,或者输入数据类型和n不同的才会强制退出。目前还没有找到很方便的使用回车的方法退出循环。
- 最常使用还是cin>>n
- 如果输入的有空格的时候,使用getline()函数非常方便
- 要留意是否有回车符在缓冲流中的问题,如:
int n;
string s1;
cin>>n;
getline(cin,s1);
这时候的getline()不执行,因为cin>>n后回车了,回车符在缓冲流中,再执行getline()时先把缓冲流中的额回车符读了进来,但getline遇到回车符就退出。所以改进:
int n;
string s1;
cin>>n;
cin.clear();
cin.ignore();
getline(cin,s1);
实例:输入:三行,第一行个数;第二行该个数下的字符;第三行该个数下的字符。第二行和第三行的输入判定,个数和第一行输入的相等,且字符必须为A B C D E中的一个,用空格隔开。
以上就完成了基本的输入。以下是做判定:
值得注意的是判定的条件是满足条件,执行空的。不满足输出的str为指定值。str2也一样,
以下是做输出。