我有一個特定的問題。我必須從兩個文件中讀取字符串,並將它們按char字符進行比較,並告訴它們之間的區別以及它們的不同之處。我做了指針和所有的東西,但問題是當它涉及到第一個文件的結尾(它只需要讀取較短文件的長度)我無法比較最後一個字符串,因爲我的for循環直到'\ n',最後一行沒有\ n。但另一方面,如果我將'\ 0'放在for循環中,它會給我一個錯誤的結果,因爲它也將'\ n'作爲char來計數。我如何處理這個問題?建議?我不想使用strcmp(),因爲我需要計算char差異,並且還有其他一些條件可以實現。這裏是我的問題:比較兩個文件char by char - 文件錯誤結束C
while(!feof(fPointer)){
zeichnen = 0;
fgets(singleLine, 150, fPointer);
fgets(singleLine2, 150, fPointer2);
length = strlen(singleLine); // save the length of each row, in order to compare them
length2 = strlen(singleLine2);
if(length <= length2){
for(i=0; singleLine[i] != '\n'; i++){
singleLine[i] = tolower(singleLine[i]);
singleLine2[i] = tolower(singleLine2[i]);
if(singleLine[i] != singleLine2[i]){
zeichnen++;
}
}
printf("Zeile: %d \t Zeichnen: %d\n", zeile, zeichnen); // row, char
注意:有**兩個** EOF條件來處理。注2:不要使用'feof()'http://stackoverflow.com/q/5431941/905902 – wildplasser
我不需要兩個EOF條件,因爲我已經對之前的文件進行了比較並決定包含哪個文件在while循環中,這只是我的問題所在的代碼的一部分。 –
注意3:總是檢查每個IO函數的返回值(除了正常打印到stdio/stderr之外,因爲wpuld比它更值得繁瑣)。 – hyde