English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

讀取檔案的字元和另一檔案的字元做比較,比較是否相同或者相異,需要用到fopen函式嗎?可以寫出一個架構嗎?可供參考.

2006-07-06 21:37:54 · 3 個解答 · 發問者 小GY 1 in 電腦與網際網路 程式設計

3 個解答

在下依您的題意試著寫出一個接近的範例,但因您的題意有些不清楚,所以在下謹將兩個檔案的字元數目設定為相同,程式碼如下:
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

fedest.com, questions and answers