使用>>时c ++中的operator用于捕获用户输入,是否可以阻止控制台打印用户按下返回键时生成的换行符?
答案 0 :(得分:0)
通过从键盘输入两个EOF而不是Carriage Return,可以防止这种换行行为。在控制台提示符下输入字符串后,点击
CTRL-D,CTRL-D
请注意,这是一个特定于平台的答案。这适用于我的Mac,但在Windows操作系统上,EOF序列可能是CTRL-Z,RETURN。我很感激答案编辑< - HERE。
或者,您可以放弃>>运算符并使用类似std :: getline的东西并指定一个精确的字符串终止分隔符。例如:
std::string myString;
std::getline(std::cin, myString, ';');
std::cout << myString;
这将从标准输入读取到myString
,并将字符串终止为NULL字符,它找到第一个分号';'
。然后你只需要按CTRL-D(输入EOF)一次。
答案 1 :(得分:0)
您可以每次按空格键输入值或输入。但最后你必须按回车键
让我们说:你想输入“5,4,3,2,1”
你可以这样做:5 [enter] 4 [enter] 3[enter] 2[enter] 1[enter]
另外:5[space]4[space]3[space]2[space]1[enter]
但是如果你想在输入附近打印输出,你可以先打印输入,然后打印你想要的东西
例如:
输入:3
输出:input+1
所以你会这样做:
cout<<input;
cout<<" "<<input+1<<endl;
祝你好运:)
答案 2 :(得分:0)
您无法阻止newline
字符,因为当您使用cin
时,您正在与system core
进行通信,而console
不受用户控制。当您输入\n
或EOF
或其他异常情况时,getchar()
将返回。
因此,更好的方法是使用buffer
来捕获'\ n',而不要将其留在{{1}}。