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

How to have all the inputs on the same line C++

本文关键字:一行 C++ 输入      更新时间:2023-10-16

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

Time: 4:54 

但是我的代码会产生这个:

Time: 4 

54

cout << "ntTime: "; 
cin >> timeHours;
cin.get();
cin >> timeMinutes;

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

cin >> timeHours >> timeMinutes;

根据文档:

用户应引入两个值,一个用于 变量 A,另一个用于变量 B。任何类型的空间都用于 分离两个连续的输入操作;这可能是一个空格, 制表符或换行符。

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

如果用户在同一行上输入所有内容(例如 14:53 ),并且仅在末尾按 Enter 键,您的代码将按照您想要的方式工作:

演示 1

现在,如果您读取字符串,然后解释其内容,则可以拥有更好的控件,例如:

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

演示 2

#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;
}

应该是这样的

#include <iostream>
using namespace std;
int main()
{ int hour,minute;
cin>>hour>>minute;
cout<<"Time:"<<hour<<":"<<minute;
return 0;
}