如何在Dev-C++中实现输入年龄后与前后文本显示在同一行
问题原因与解决方案
你遇到的问题分为两类:语法错误、输入回车默认触发终端换行,对应解决方法如下:
首先修正你原代码的语法错误
输出流的运算符是<<,你在输出years old时误用了输入运算符>>,且末尾的<<endl没有绑定cout对象,修正语法后的基础代码如下:#include <iostream> using namespace std; int main() { int number; cout << "I Am "; cin >> number; cout << " years old" << endl; return 0; }但该版本仍存在换行问题:你输入年龄后按下的回车键会被终端默认输出为换行符,导致
years old显示在下一行。实现所有内容同屏显示在一行的解决方案
用无回显输入逐字符读取年龄,手动打印输入的数字,避免回车键触发换行,Dev-C++环境可直接运行以下代码:#include <iostream> #include <conio.h> using namespace std; int main() { int age = 0; char input_char; cout << "I Am "; // 读取输入直到按下回车键 while ((input_char = _getch()) != '\r') { // 只处理数字输入,过滤非法字符 if (input_char >= '0' && input_char <= '9') { age = age * 10 + (input_char - '0'); cout << input_char; // 手动回显输入的数字 } } cout << " years old" << endl; // 后续可直接使用age变量存储的年龄值 return 0; }运行后输入年龄按下回车,整句话会完整显示在同一行。
内容的提问来源于stack exchange,提问作者Njabulo Manando
相关产品推荐
相关产品推荐

