Я пишу программу для чтения стандартного ввода и вывода его.
int main() {
FILE* inputF = stdin;
char* inputStr[10];
fread(inputStr, 1, 9, inputF);
if(ferror(inputF)) {
printf("An error occurred");
return 0;
}
inputStr[9] = '\0';
printf("%s", (const char*)inputStr);
return 0;
}
Он должен создать строку длиной 10 символов и прочитать в нее 9 байтов стандартного ввода, а затем поместить '\0'
в положение 9.
Когда я запускаю программу, это результат:
gab@testvm:~/work/c/fibo$ ./a.out < test.txt
56 `ô
ga
Печатаются две строки и лишние символы (прокрутите вправо, чтобы увидеть их).
Что может быть причиной этого?