我想在我之前編寫的程序中讀取兩個文件,但它總是失敗。C fopen()和fgets()問題
char line[BUFSIZ];
FILE *fp2=freopen("source.dat","r");
if(fp2==NULL)
printf("Problm opening: source.dat");
FILE *fp3=freopen("result.dat", "r");
if(fp3==NULL)
printf("Problm opening: result.dat");
char line2[BUFSIZ];
int len;
while((fgets(line2, BUFSIZ, fp2) != NULL) && (fgets(line, BUFSIZ, fp3) != NULL)) {
len=strlen(line);
if(line[len - 1] == '\n') line[len-1] = '\0'; len=strlen(line2);
if(line2[len - 1] == '\n') line2[len-1] = '\0';
rename(line, line2);
}
我不知道爲什麼,我知道我的程序寫入了我想打開的兩個文件。它只是沒有通過while循環。
首先,你應該實際做一些事情 - 比如'exit()' - 如果你看到打開這些文件失敗。 – Reinderien
你確定這兩個文件存在並且不是空的,或者其他一些情況會導致'fgets'之一返回NULL? – LSerni
我通過gdb運行並且文件在循環運行之前處於目錄 – jg943