【发布时间】:2009-08-26 03:17:57
【问题描述】:
这是一个打开和打印文件内容的简单代码。
#include <stdio.h>
#include <stdlib.h>
int main ( int arg_count, char *arg_vec[] ) {
int ch;
FILE * fp;
int i;
if (arg_count <2) {
printf("Usage: %s filename\n", arg_vec[0]);
exit(1);
}
if ((fp = fopen(arg_vec[1], "r")) == NULL) { // can't open file
printf("Can't open %s \n", arg_vec[1]);
exit(1);
}
for (i = 1; i <(arg_count+1); i++) {
printf("%s \n\n", arg_vec[i]); // print file name
while ((ch = getc(fp)) != EOF) {
putc(ch,stdout); // print content
}
}
fclose(fp);
return 0;
}
但为什么它在输出打印输出的末尾给出 (null):
Filename.txt
text
text
(null)
【问题讨论】:
-
(arg_count+1) 是罪魁祸首。顺便说一句,argv[] 中的最后一个成员始终为 NULL。