我需要一种方法来读取用户在控制台中粘贴的行。用户以这种方式粘贴它:
第一行:n - 除了这一行之外的行数
2nd - nth: 一个字符串对象
如果我用 cin 读取它,它会读取第一行,退出程序,然后将下一行放在控制台输入中。使用 scanf 我得到类似的结果。
string s[100];
int N = 0;
scanf("%i", N);
for (int i = 0; i < N; i++)
{
scanf("%s", s);
}
最佳答案
如果你使用 std::vector<std::string>
会更好并使用 std::getline
提取行:
std::vector<std::string> lines;
std::string line;
while (std::getline(std::cin >> std::ws, line))
{
if (!line.empty())
lines.push_back(line);
}
关于C++ 获取多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19881868/