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

新手上路,请多包涵

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

> Time: 4:54
>
> ```

但我的代码产生了这个:

> ```
>  Time: 4
>
> ```
>
> 54

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

”`

原文由 notClickBait 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

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

如果用户在同一行输入所有内容(例如 14:53 )并仅在最后按回车,您的代码将按您的意愿工作:

演示 1

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

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

演示 2

原文由 Christophe 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以这样做:

 cin >> timeHours >> timeMinutes;

根据 文档

用户需要引入两个值,一个用于变量 a,另一个用于变量 b。任何一种空间都用于分隔两个连续的输入操作;这可以是空格、制表符或换行符。

原文由 Vtik 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题