Я пытаюсь ввести ряд чисел, каждое число разделяется пробелом. Ряд чисел должен прекратить принимать входные данные, если задан 0
.Отдельный вход scanf с пробелом в C
Я делаю это с помощью петли 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;
}
Вы должны нажать enter, чтобы начать обработку этой строки. 'scanf' даже не считывает первое число в строке, пока вы не нажмете enter. – wimh
Если я правильно вас понимаю, scanf инициализирует только после нажатия клавиши ввода? Разве это не так? (используя scanf), чтобы инициализировать цикл с пробелом? Спасибо за ваш ответ. – whizdiz
ваш код имеет пару ошибок компиляции, но должен работать с исправленными: SIZE должен быть определен где-то (возможно, у вас есть это в заголовке?), И он должен действительно соответствовать размеру вашего массива; и у вас есть беспризорный апостроф в конце строки printf. – pb2q