如何将所有输入放在同一行C ++

时间:2016-06-05 22:05:11

标签: c++ input cin

我被要求在同一行输入一小时一分钟。但是当我输入小时时,它会自动转到一个新行,我只能在下一行输入分钟。但是,我想在同一行输入小时和分钟,它们之间有冒号。看起来应该是这样的

Time: 4:54 

但我的代码产生了这个:

Time: 4 
     

54

cout << "\n\tTime: "; 
cin >> timeHours;
cin.get();
cin >> timeMinutes;

4 个答案:

答案 0 :(得分:2)

您可以按以下方式执行此操作:

cin >> timeHours >> timeMinutes;

根据documentation

  

用户需要引入两个值,一个用于   变量a,另一个变量b。任何类型的空间都用于   分开两个连续的输入操作;这可能是一个空间,   标签或换行符。

答案 1 :(得分:2)

行为取决于用户提供的输入。

如果用户在同一行输入所有内容(例如14:53)并仅在最后按Enter键,则代码可以按照您的意愿运行:

Demo 1

现在你可以有一个更好的控制,如果你读了一个字符串然后解释它的内容,例如在这里:

string t; 
cout << "\n\tTime: "; 
cin >> t;
stringstream sst(t);
int timeHours, timeMinutes;
char c; 
sst>>timeHours>>c>>timeMinutes;

Demo 2

答案 2 :(得分:1)

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main() {
    string input;
    char symbol;
    int hour, min;
    cout << "Time: ";
    getline(cin, input);
    stringstream(input) >> hour >> symbol >> min;

    return 0;
}

答案 3 :(得分:1)

应该是这样

#include <iostream>
using namespace std;
int main()

{ int hour,minute;
cin>>hour>>minute;

cout<<"Time:"<<hour<<":"<<minute;
return 0;

}