【发布时间】:2025-12-11 14:50:02
【问题描述】:
我想编写一个程序,它读取一行和一个字符,然后将它们一起打印出来。这是我的代码:
#include <string>
#include <iostream>
using namespace std;
int main() {
string s;
string a;
while (getline(cin,s)) {
cin>>a;
cout<<s<<a<<endl;
}
}
我第一次输入:“abc d”作为一行,然后“a”作为一个字符, 输出是“abc da”。 但后来我又输入“abc d”,它立即输出“abc”,而不是等我输入“a”再输出“abc da”。我的代码哪里错了?
【问题讨论】:
-
那是因为在
>> a之后有一个未使用的换行符,下一个getline读取为空行。同一个问题有很多重复的问题。 -
这里
s和a的用法有什么区别? -
您能告诉我如何避免这种情况吗?
标签: c++