目录
这段代码假设输入是格式良好的,即每行都包含至少一个整数,并且整数之间由空格分隔 然而,在 在这个版本中, 下面是一个使用 在这个例子中,程序会等待用户输入一行文本,直到用户按下回车键(即输入换行符)。然后,程序会输出用户输入的内容。注意,
计算一系列数的和
输入例子:
1 2 3
4 5
0 0 0 0 0
输出例子:
6
9
0#include <iostream>
#include <cstring>
#include <sstream>
using namespace std;
int main() {
string line; // 定义一个字符串line来存储从输入流中读取的每一行。
// 使用while循环和getline函数从cin读取行到line中。这个循环会持续进行,直到输入流结束
while (getline(cin, line)) {
stringstream ss; // 创建一个字符串流ss
ss << line; // 将读取到的行line放入字符串流ss中
int res = 0, x;
/*使用另一个while循环从字符串流ss中读取整数到变量x中,并将每个读取到的整数累加到res中。
这个循环会持续进行,直到字符串流中没有更多的整数*/
while (ss >> x) {
res += x;
}
cout << res << endl;
}
}
getline函数
getline
是一个在 C++ 标准库中非常有用的函数,它用于从输入流中读取一整行文本。getline
函数可以处理包含空格的字符串,这使得它在需要从输入中读取包含空格的整行文本时特别有用,这与 cin
运算符不同,后者在遇到空格、制表符或换行符时会停止读取。getline
函数的原型通常如下:istream& getline (istream& is, string& str, char delim);
istream& is
:表示一个输入流,通常是 cin
(标准输入)或者一个 ifstream
对象(用于从文件读取)。string& str
:这是一个字符串引用,getline
会把从输入流中读取的字符序列存储在这个字符串中。char delim
:这是一个可选参数,表示定界符(delimiter),即标志着输入结束的字符。如果不提供这个参数,getline
默认使用换行符(\n
)作为定界符。<string>
头文件中,getline
的更常见形式是没有第三个参数的版本:istream& getline (istream& is, string& str);
getline
会读取输入直到遇到换行符,然后将读取的内容(不包括换行符)存储在 str
中。getline
函数的简单示例:#include <iostream>
#include <string>
int main() {
std::string line;
std::cout << "Please enter a line of text: ";
std::getline(std::cin, line);
std::cout << "You entered: " << line << std::endl;
return 0;
}
getline
读取了整行,包括其中的空格,但不会包括换行符本身。