Я использую GCC для компиляции кода на C. Мой второй scanf
не останавливается, чтобы получить вход. Он только читает в первом scanf
и печатает два утверждения: одно с тем, что я ввел в строку, а другое просто пустое.Смутно о GCC и scanf в C
int main (void) {
setvbuf(stdout, NULL, _IONBF, 0);
char string[25] = {'\0'};
char c;
scanf(" %s", string);
scanf(" o%c", &out);
printf("Input is : %s \n\n", string);
printf("Out is: %c", out);
return 0;
}
Вместо того, чтобы
Input является то, что я напечатал и приглашение ввести символ для вне
я получил выход, как показано ниже
Input is : whatever i typed
Out is:
Программа завершается. Может кто-то помочь. Я провел некоторое исследование и попытался разместить пробел до %c
, а для строки и ничего не произошло.
Просьба уточнить * exaccty *, какой вклад вы дали. Лучше всего запустить программу и вставить в * точный * журнал. Ваш второй 'scanf' ожидает, что вход будет содержать букву' o', за которой следует другой символ. Это действительно то, что вы намеревались? – kaylum
Является ли 'o' действительно в строке формата' 'o% c" '? Обратите внимание, что '% s' прекращает чтение в первом пробеле после символа без пробела. –