C++代码在同一行中未显示输出。
C++代码在输出时无法在同一行中显示的问题,可能是由于字符串中的'\r\n'和'\n\r'导致的。可以尝试使用替换函数将这些字符替换为空字符串。可以参考以下链接了解如何在字符串中进行替换操作:How to replace all occurrences of a character in string?
鉴于提问者正在使用XTerm,我怀疑他们并没有使用Windows的换行符。然而,所有的换行符都会被解释为C++中的\n
字符。因此,可以尝试在字符串中将'\r\n'和'\n\r'替换为空字符串来解决问题。
在上述代码中,使用了fgets()函数从键盘读取字符串。fgets()函数会同时读取字符串和回车符的ASCII码,回车符的ASCII码是13(回车 - CR)。因此,上述代码会将'str'末尾的回车符也当作字符串的一部分,导致输出在下一行。
解决方法是使用gets_s()函数从键盘获取字符串。下面是修改后的代码:
#includeusing namespace std; int main() { char str[10] = "Anmol"; int age = 17; cout << "Enter your name here :- "; gets_s(str); cout << "Enter your age here :- "; cin >> age; cout << "Hello World, It's " << str << " And my age is " << age; return 0; }
你可以在附带的截图中看到输出结果。
截图链接:i.stack.imgur.com/DaKKr.png
这个问题的出现原因是在C++代码中,输出的内容没有在同一行显示。解决方法是在每个输出语句之后添加`std::flush`来刷新输出缓冲区。
以下是修改后的代码:
#include#include using namespace std; int main() { string str; int age; cout << "Enter your name here :- " << flush; cin >> str; cout << "Enter your age here :- " << flush; cin >> age ; cout << "Hello World, It's " << str << " And my age is " << age << endl; return 0 ; }
这样修改后,输出的内容将在同一行显示。