我需要逐行比較兩個文件。其中一個文件在行尾具有^ M這樣的字符。我想在比較時排除這一點。我還需要找到匹配的行數。這是我的代碼。如何添加^ M和增加線控制器的位置?比較兩個文件c代碼
int compareFile(FILE* file_compared, FILE* file_checked)
{
bool diff = 0;
int N = 65536;
char* b1 = (char*) calloc (1, N+1);
char* b2 = (char*) calloc (1, N+1);
size_t s1, s2;
do {
s1 = fread(b1, 1, N, file_compared);
s2 = fread(b2, 1, N, file_checked);
if (s1 != s2 || memcmp(b1, b2, s1)) {
diff = 1;
break;
}
} while (!feof(file_compared) || !feof(file_checked));
free(b1);
free(b2);
if (diff) return 0;
else return 1;
}
void main(int argc, char *argv[])
{
FILE *fpread, *fpread2;
char filebuff[MAXLINE];
char filebuff2[MAXLINE];
int var = 0;
int linecount = 0;
printf ("COMPARE RESULT %d \n",compareFile("file1","file2"));
你的函數收到文件名或FILE * ?? –
[在特定行c代碼的文件中搜索]的完全重複(http://stackoverflow.com/questions/12383443/search-in-a-file-for-a-specific-line-c-code),你昨天剛剛在這裏問過。 – DevSolar