Я пытаюсь отформатировать пользовательский ввод с пространственным разделением для назначения программирования.Использование функции scanf во время цикла
По существу, входной состоит из произвольного числа выражений
L integer integer integer integer
и C integer integer integer
.
Например: L 1 1 5 7 C 4 5 3
.
До сих пор мне удалось извлечь целые числа в зависимости от начального символа, и может перебирать строки с помощью функции Scanf:
char a;
while(scanf("%c", &a) == 1){
if(a == 'C'){
int inputX, inputY, inputR;
scanf("%d %d %d", &inputX, &inputY, &inputR);
printf("%d %d %d\n", inputX, inputY, inputR);
}
else if(a == 'L'){
int x1, y1, x2, y2;
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
printf("%d %d %d %d\n", x1, y1, x2, y2);
}
}
К сожалению, хотя это и выводит желаемые целые числа, цикл (и приглашение пользователя) не завершается.
Может кто-нибудь, пожалуйста, просветит меня, почему это происходит?
Вы пишете 'EOF' (по Ctrl + D в Linux или Ctrl + Z в Windows) в конце ввода? – timrau
@timrau, загружающий 'EOF', заканчивает ввод, пока программа работает, но я ожидаю, что он закончится и в' Enter'. –