每当我input一个variables使用cin
,一击后input它自动去一个新的行。 我很好奇,如果有一种方法可以使用cin
而不需要换一个新的行。 我想在命令提示符的cin
和cout
多cin
在同一行。 这可能吗?
你不能使用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()
来做到这一点。 你将不得不做的是:
getchar()
分别收集每个字符(例如,将每个字符添加到string
的末尾) int
或double
值读取),那么 int
, double
等),然后 强大的处理错误会很复杂,所以我没有为此写任何代码,但是你可以看到你可以使用的方法。
你也可以使用空格输入,而不是像这样输入:
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中。