gpt4 book ai didi

c++ - 如何使用 cin 继续阅读直到到达空白行

转载 作者:行者123 更新时间:2023-11-28 05:20:51 25 4
gpt4 key购买 nike

我正在尝试使用标准输入 (cin) 读取输入,直到出现空白行。我尝试了很多次,但仍然无法实现。谁能帮帮我?

The following is the input format. Note:
1. // are comments
2. Comments can be randomly distributed after the second line in the input. So I also need to clear those comments. Not sure how to do it.
3.The first line has to be a single letter.
4.The second line has to be an integer.

A
8

很好
太棒了
太棒了
太棒了
太棒了
//这些是一些随机的评论
才华横溢
天才
计算器

The following is what I have right now. I'm trying to use getline but the program just reads in the first two lines(the letter and the number). Then the programs ends. Not sure what is going wrong:

void read() {    
vector<string> my_vec;
char my_letter;
cin >> my_letter;

int my_num
cin >> my_num;

string current_word;
while (getline(cin, current_word)) {
if (current_word.empty()) {
break;
}
if (current_word[0] != '/' ) {
my_vec.push_back(current_word);
}
}
}

最佳答案

提取 cin >> my_num; 不提取换行符(这是空格,因此下一个 getline 调用提取一个空行。

解决这个问题的替代方法:

  1. 始终使用基于行的字符串提取和从属字符串流。

  2. 使用 std::cin >> my_num >> std::ws 吞噬空白。

  3. 使用 std::cin.ignore(1, '\n') 吞掉一个换行符。

  4. 使用虚拟 std::getline(std::cin, current_word) 调用来吞掉一个换行符。

关于c++ - 如何使用 cin 继续阅读直到到达空白行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41529380/

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