我尝试输入一系列数字,每个数字以空格分隔。一旦0
给定,该数列必须停止输入。
我用for
循环来做这件事。如果我用n
分隔每个数字,在我给出0
作为数字后,它确实停止读取输入。
但是如果我用空格分隔每个数字,那么在我给出0
之后什么也不会发生。它只是继续读取输入
我试图找到一个答案,如果解决方案是显而易见的,我很抱歉。我刚开始学C,请原谅我。
int main(int argc, char **argv){
int ar[1000];
int i;
printf("Give a series of numbers, separated by space. Stop reading when `input is 0.n --> : ");`
for (i = 0; i < SIZE ; i++){
scanf("%d", &ar[i]);
if (ar[i] == 0){break;}
}
return 0;
}
默认情况下,大多数命令行终端只会在您键入一整行后才向正在运行的程序发送输入。这是为了让你有机会用退格键来修复拼写错误。
一个简单的解决方案是,不手动输入输入,而是将其放在文本文件中并使用文件输入重定向(<
)。这个输入重定向语法在Linux和Windows shell上都有效。
myProgram.exe < myInput.txt