没有换行的用户输入?

时间:2014-03-07 01:50:04

标签: c++

基本上我需要用户输入整数,我试过这些方法:

#include <iostream>
int main() {
 int PID;
 scanf("%i",&PID); //attempt 0
 cin >> PID; //attempt 1
}

任何想法?

1 个答案:

答案 0 :(得分:3)

大多数命令行输入法要求用户按 ENTER 指示输入结束,即使应用程序不使用换行符。

如果您不希望用户使用 ENTER 结束输入,那么您可能不得不求助于一次读取输入1字符并手动处理数据转换。问题是,没有换行符,你怎么知道用户输入输入的时间?当用户输入X个字符/数字?如果用户键入的次数少于最大值,该怎么办?当用户停止键入X秒时,启动计时器并停止阅读?看到问题了?

换行符不容忽视。您应该重新设计输入逻辑以接受它们,而不是避免它们。如果这真的不是一个选项,那么你可能需要重新思考为什么要创建一个命令行应用程序而不是GUI应用程序,用户可以在准备就绪时按下按钮。