每当我使用cin
输入变量时,在一次点击后,它会自动转到新行。我很好奇是否可以使用cin
而无需使用新行。我想在命令提示符的同一行中cin
和cout
多个事情。这可能吗?
答案 0 :(得分:8)
您无法使用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 keyboard functions感兴趣。
答案 1 :(得分:4)
您也可以使用空格输入而不是输入 像这样的东西:
cin >> a >> b >> c;
并在输入中键入
10 20 30
然后
a=10
b=20
c=30
答案 2 :(得分:2)
正如其他人所说,您不能使用cin
执行此操作,但可以使用getchar()
执行此操作。你需要做的是:
getchar()
单独收集每个字符(例如,在读入时将每个字符添加到string
的末尾),然后' '
字符,如果您正在阅读int
或{ {1}}值),然后double
,int
等。 ),然后强有力地处理错误会很复杂,所以我没有为此编写任何代码,但你可以看到你可以使用的方法。
答案 3 :(得分:1)
我不认为你想做什么可以用cin来实现。您可以做的是将所有输入写入一行,并使用您选择的分隔符,并解析输入字符串。
答案 4 :(得分:0)
这是不可能的。引用@Bo Persson,它不是由C ++控制的,而是控制台窗口。
答案 5 :(得分:0)
只需使用gotoxy语句即可。您可以按“输入”并在同一行中输入值 例如。在输入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();}'
答案 6 :(得分:0)
我无法发表评论,但如果你在整数之间留出空格,那么你可以获得所需的效果。这也适用于cin
。
int a, b, c;
cin>>a; cin>>b; cin>>c;
如果您输入的值为10 20 30
,则它们将分别存储在a,b和c中。