如何使用cininputvariables而不创build新行?

每当我input一个variables使用cin ,一击后input它自动去一个新的行。 我很好奇,如果有一种方法可以使用cin而不需要换一个新的行。 我想在命令提示符的cincoutcin在同一行。 这可能吗?

你不能使用cin或任何其他的标准输入。 但是,获得你要去的效果当然是可能的。 我看到你在使用Visual Studio的Windows上,所以你可以使用,例如, _getch 。 这是一个读取直到下一个空格并将结果存储在字符串中的示例。

 #include <conio.h> // for _getch std::string get_word() { std::string word; char c = _getch(); while (!std::isspace(c)) { word.push_back(c); std::cout << c; c = _getch(); } std::cout << c; return word; } 

这不是很好。 例如,它不处理非打印字符输入。 但它应该让你知道你需要做什么。 您可能也对Windows API键盘功能感兴趣。

如果您想要更广泛的受众群体,则需要查看一些跨平台的库,如SFML或SDL 。

正如其他人所指出的,你不能用cin来做这件事,但你可以用getchar()来做到这一点。 你将不得不做的是:

  1. 然后,使用getchar()分别收集每个字符(例如,将每个字符添加到string的末尾)
  2. 在读完每个字符之后,决定何时到达一个变量值的末尾(例如,通过检测输入中的一个或多个字符,如果是以intdouble值读取),那么
  3. 如果已经到达变量文本的末尾,则将已经构建的字符串转换为相应类型的变量(例如intdouble等),然后
  4. 将任何内容输出到可能需要的行上,然后
  5. 继续下一个你正在阅读的变量。

强大的处理错误会很复杂,所以我没有为此写任何代码,但是你可以看到你可以使用的方法。

你也可以使用空格输入,而不是像这样输入:

 cin >> a >> b >> c; 

并在输入你输入

 10 20 30 

然后

 a=10 b=20 c=30 

我不认为你想要做什么可以用cin来实现。 你可以做的就是把你所有的输入写在一行中,用你选择的分隔符来解析输入的字符串。

这不可能。 引用@Bo Persson,它不是由C ++控制的,而是控制台窗口。

只是使用gotoxy语句。 你可以按'enter'并在同一行输入例如。 在一个3 * 3矩阵的输入中:

 '#include<iostream.h> #include<conio.h> void main() {clrscr(); int a[20][20],x,y; cout<<"Enter the matrix:\n "; for(int r=2;r<7;r+=2) for(int c=2;c<7;c+=2) {gotoxy(c,r); cin>>a[r][c]; } getch();}' 

我不能评论,但如果你留在整数之间的空格,那么你可以得到预期的效果。 这也适用于cin

 int a, b, c; cin>>a; cin>>b; cin>>c; 

如果你输入你的值为10 20 30那么它们将分别存储在a,b和c中。