2013-02-21 3 views
0

Он полностью перестает читать в коде после того, как видит пространство. Как я могу изменить свой код, чтобы он читает в белом пространствеКак читать в белых пробелах с помощью scanf?

char line[300]; 

printf("Enter a string to be checked: "); 
scanf("%s", line); 

струна Я пытаюсь ввести с помощью перенаправления:

((аа) <> [[[{[х]]] ] <>)

+1

Возможный дубликат [Как читать пробел с помощью scanf в c?] (Http://stackoverflow.com/questions/3765023/how-do-i-read-white-space-using-scanf-in- c) –

+1

Возможный дубликат [Как вы можете вводить пробелы с помощью scanf?] (http://stackoverflow.com/questions/1247989/how-do-you-allow-spaces-to-be-entered-using- scanf) –

ответ

2

Вы можете использовать fgets intsead из зсапЕ. Например:

fgets(line, 1024, stdin); 
+0

И вы можете использовать get, но это не очень хорошо. – someuser

+0

Что? **Это правильный ответ. – 2013-02-21 05:59:49

0

% s Соответствует последовательности символов небелого пробела; следующий указатель должен быть указателем на char, и массив должен быть достаточно большим, чтобы принимать всю последовательность и завершающий символ NUL. Входная строка останавливается в белом пространстве или при максимальной ширине поля, в зависимости от того, что произойдет раньше.

Нужно выбрать другую строку форматирования. Из вашей строки ввода не совсем ясно, что именно вы пытаетесь выполнить.

-1

Пожалуйста, проверьте код ..

printf("Enter a string to be checked: "); 
    gets(line); 
    puts(line); 

Выход: -

Enter a string to be checked: ((a a) < > [ [ [ { [ x ] ]]] <>) 
((a a) < > [ [ [ { [ x ] ]]] <>) 
Press any key to continue . . . 
+2

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. – ryadavilli

+0

Я проверил код с помощью строки автора. поэтому, пожалуйста, не судите никаких ответов, не тестируя bahaviour. –

2

Вы должны использовать fgets(line, size, stdin);, как и прежде. вы никогда не должны использовать gets(), так как он каждый раз будет получать одинаковый размер ввода. Компиляторы, по крайней мере, gcc, предупреждают вас не использовать его.

Смежные вопросы