目录
本文是由课程笔记改编而来,算是半原创,希望能帮到大家!
读入一行,以换行符(默认)或指定的字符(称为 delimiter)作为结束标志,delimiter 会被读取但不会出现在 s 中
输入 char
读入一个字符(包含空白符):
char ch;
cin.get(ch);
读入一个非空白符:
char c;
cin >> c
读取未知个数的字符(包含空白符):
char ch;
while (cin.get(ch)) {
// do something ...
}
get 的返回值为 istream 对象,而 istream 对象可以转换为 bool 值,因而可以出现在 while 的条件中; >> 实际上会转换成函数 operator>> 的调用,函数的返回值也为 istream 对象 https://en.cppreference.com/w/cpp/io/basic_ios/operator_bool
输入 int
输入 10 个数字 输入未知个数的数字并求和
int nums[10];
for (int i = 0; i < 10; i++) {
cin >> nums[i];
}
输入未知个数的数字并求和
int sum = 0;
while (cin >> n) {
sum += n;
}
输入 string
读入,以空白字符或 EOF 作为结束标志
cin >> s; |
读入一行,以换行符(默认)或指定的字符(称为 delimiter)作为结束标志,delimiter 会被读取但不会出现在 s 中
getline(cin, s); // 以换行符为结束标志 getline(cin, s, ','); // 以 , 为结束标志 |
两个输入string的例子:
eg1.
eg2.
注意下面的情况!
输入 5 然后回车:
可以发现,还没有进行第二行的输入,程序就已经结束了。原因是:
可以使用 std::ws解决:
关于输出的两个简便操作(其实并没有简便多少\doge)