gpt4 book ai didi

c++ - 为什么 getline 跳过第一行?

转载 作者:行者123 更新时间:2023-12-02 10:38:25 26 4
gpt4 key购买 nike

在以下代码中,getline()跳过阅读第一行。
我注意到在评论“cin >> T”行时,它可以正常工作。但我无法弄清楚原因。

我想在读行之前读一个整数!如何解决?

#include <iostream>
using namespace std;

int main () {
int T, i = 1;
string line;

cin >> T;

while (i <= T) {
getline(cin, line);
cout << i << ": " << line << endl;
i++;
}

return 0;
}

最佳答案

cin >> T;

这会消耗您在标准输入上提供的整数。

第一次打电话:
getline(cin, line)

...您在整数之后使用换行符。

您可以获得 cin ignore 通过在 cin >> T; 之后添加以下行来换行:
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

(对于 #include <limits> ,您需要 std::numeric_limits)

关于c++ - 为什么 getline 跳过第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58245420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com