讀取檔案的字元和另一檔案的字元做比較,比較是否相同或者相異,需要用到fopen函式嗎?可以寫出一個架構嗎?可供參考.
2006-07-06 21:37:54 · 3 個解答 · 發問者 小GY 1 in 電腦與網際網路 ➔ 程式設計
在下依您的題意試著寫出一個接近的範例,但因您的題意有些不清楚,所以在下謹將兩個檔案的字元數目設定為相同,程式碼如下:
PS:此範例需事先建立C:\f1.txt,C:\f2.txt並於此兩個檔案內輸入相同長度的內容
#include
#include
void main(void)
{
FILE *F1,*F2;
int j=0;
char compare='T';
char ch1,ch2;
F1=fopen("C:\\f1.txt","r");
F2=fopen("C:\\f2.txt","r");
while((ch1=fgetc(F1))!=EOF)
{
fseek(F2,j,0); /*移動檔案F2之指標*/
while((ch2=fgetc(F2))!=EOF)
{
j++;
break;
}
if(ch1!=ch2)
{
compare='F';
break;
}
}
fclose(F1);
fclose(F2);
if(compare=='T')
printf("檔案1與檔案2內容相同!\n");
else
printf("檔案1與檔案2內容不相同!\n");
}
2006-07-06 22:59:21 · answer #1 · answered by ? 6 · 0⤊ 0⤋
當兩個檔案(a.txt,b.txt)裡,a.txt有111AA,222BB,333CC,444DD,555EE...;另一檔案b.txt有111AB,333CC,222BD,555EF,444DD,只要比較後面兩字元,不同的資料則用錯誤訊息列出,請問一下要用什麼函式來寫這程式.(故以上要列出的資料須為111AA,222BB,555EE有差異性),請大家為小弟解答,謝謝!這是我要補充的條件.
2006-07-09 21:34:33 · answer #2 · answered by 小GY 1 · 0⤊ 0⤋
#include
#include
int main(int argc, char **argv)
{FILE *a, *b;
char ca, cb, d;/* char. of a, char. of b, Different*/
if (argc<2)
{printf("usage: %s filename_1 filename_2\n", *argv);
exit(1);
}
if (!(a = fopen(argv[1], "r")))
{printf("Can not open file 1: %s", argv[1]);
exit(2);
}
if (!(b = fopen(argv[2], "r")))
{printf("Can not open file 2: %s", argv[2]);
exit(3);
}
d = 1;
while((ca=getc(a))!=EOF && d)
{cb=getc(b);
d= ca==cb;
}
if (getc(b)!=EOF)
d= 0;
fclose(a);fclose(b);
printf("The files are %s.\n", d?"same":"different");
return d;
}
你只要個架構,我就現場亂寫啦!
這應該是你的作業吧!?你要自己修正啦!
祝好運!
2006-07-09 06:05:34 補充:
這個版本檔案長度不同也不會錯喔!會印出 different。
2006-07-06 22:28:14 · answer #3 · answered by ? 7 · 0⤊ 0⤋