我正在编写一个程序来读取标准输入并输出它。
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的字符串并从stdin中读取9个字节到它里面,然后将'\0'
放在第9个位置。
当我运行这个程序时,得到的结果是:
gab@testvm:~/work/c/fibo$ ./a.out < test.txt
56 `ô
ga
打印出了两行文字和多余的字符(向右滚动以查看)。
这可能是什么原因造成的?