Я только начинаю с C. Я написал очень простой код для практики, который должен читать ввод с клавиатуры в массив, выводить длину самой длинной строки и затем печатать ее. Theres функция для чтения ввода, я хочу, чтобы она печатала каждый символ, поскольку он присваивается массиву каждый раз, но он не работает. Он печатает некоторые странно выглядящие персонажи. Я искал «массив печати мусора». но не нашел ответа.Почему элементы массива не печатаются правильно?
int getline(char line[])
/*
This function 1) Reads a line of input until a '\n',
2) Returns the length of the line and
3) Saves the line in the array "line[]"
*/
{
int c,i;
i=0; // The character count
printf("Enter characters:\n");
while((c=getchar())!='\n') // Reads input until it hits a '\n'
{
line[i]=c;
i++;
printf("char %d = %c \n ",i,line[i]);//
Почему этот "Printf" работать правильно? Он печатает странный символ на второй заполнителем
}
printf("you typed %d characters.\n",i); //Outputs the number of characters typed
return i;
}
print line [i] before i ++ – holmium
Как вы называете getline (x)? Что такое объявление x? – Jens
Что делать, если getchar возвращает 'EOF'? Вы также должны иметь дело с этим, иначе он будет рассматриваться как персонаж, что неверно. – Jens