почему getchar () возвращает значения мусора? - PullRequest
0 голосов
/ 24 марта 2019

Итак, я пытаюсь получить ввод в мой код на c, но продолжаю получать мусор, когда использую getchar ().

Я пытался использовать scanf (), но не повезло.

#include <stdio.h>
int main(){
    int c;
    while((c=getchar()) != EOF){
        printf("%d", c); 
   }
}

Я компилирую его в оболочке bash с текстовым файлом в качестве входных данных, и значения не совпадают вообще. мой вклад

lo
hello, world
23

мой вывод

lo
108
111
10
104
101
108
108
111
44
32
119
111
114
108
100
10
50
51
10
10

Почему это происходит?

Ответы [ 2 ]

1 голос
/ 24 марта 2019

Ваш код выводит числовой код, который соответствует каждому символу, который читает ваш код. Предположительно, это те числовые коды, которые ваш компьютер использует для представления введенных вами символов.

Вы не говорите, что ожидали или почему, но это должна быть последовательность целых чисел, поскольку это все, что ваш код может вывести.

0 голосов
/ 24 марта 2019

getchar, как следует из названия, получает char. Вы можете хранить его в int, но когда вы печатаете его, вы должны рассматривать его как символ. Попробуйте "%c" в строке формата printf, и она будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...