我正在尝试使用 fopen() 顺序打开多个文件,只打印内容并计算字符。在 main() 中,我使用不同的文件名两次调用该函数,但该函数只是两次打印第一个文件的内容。当然,这两个文件都存在,并且只调用一次这个函数就可以打印出正确的内容;用这两个文件进行了测试。多次调用该函数时似乎存在问题。
有人可以给我一个提示吗?有什么问题?
我的功能:
void open_and_read(char file_name[80]){
char c;
int buf_length = 16384;
char buf[buf_length];
char* buf_pointer;
int i = 0;
FILE *file_pointer;
file_pointer = fopen(file_name,"r");
buf_pointer = buf;
if(file_pointer==NULL){
printf("Error: File %s not opened!", file_name);
}
else {
while(c!=EOF && i<(buf_length-1)){
c = fgetc(file_pointer);
*buf_pointer = c;
buf_pointer++;
i++;
}
buf_pointer--;
*buf_pointer = 0;
printf("The file %s contains the follwing: \n%s", file_name, buf);
printf("char-count: %i\n", i);
}
if(fclose(file_pointer)!=0){
printf("File was not closed!");
}
else {
printf("File was successfully closed!");
}
}
主要的():
int main(){
open_and_read("/home/x201/dev/IB/data/line1.dat");
open_and_read("/home/x201/dev/IB/data/line2.dat");