В последний раз я делал C в 1991 году, а сейчас помогаю другу с домашней работой.
Он должен получить символы из stdin в массив.Кажется достаточно простым.Я подумал, что буду использовать этот вопрос в качестве контрольной точки .
У нас есть это:
printf("Input the line\n");
i=read(0, arg, sizeof(char)*9);
IIUC, который получает нам символы и основывается на ответном комментариимы должны иметь возможность помещать символы непосредственно в массив arg следующим образом:
while ((c = getchar()) != '\n' && c != EOF && i2<9 ) {
arg[i2] = c;
i2++;
}
Однако это печатает (repl.it link) :
./main
Input the line
123 456 789
893 456
Таким образом, похоже, что хотя я пытаюсь ограничить его индексами [0,8], добавив i2<9
в цикл while, он по-прежнему захватывает 89
и помещает его в начало массива, поскольку только массивподходит для 9 символов.
Почему это?И я иду по этому пути правильно?
Нам не разрешено использовать fpurge.Я полагаю, профессор пытается научить их, как это делать вручную ...