-3
A
回答
0
0
由於問題有點含糊,「散列」可能是一個有點含糊的答案。
0
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
int compareFiles(const char * filename_compared, const char *filename_checked, int *matched)
{
int matches = 0;
int lines = 0;
char compare_line[10000];
char check_line[10000];
char *compare;
char *check;
FILE *f_compare;
FILE *f_check;
f_compare = fopen(filename_compared,"r");
if (f_compare == NULL)
{
printf("ERROR %d opening %s\n",errno,filename_compared);
return EXIT_FAILURE;
} else { printf("opened %s\n",filename_compared); }
f_check = fopen(filename_checked,"r");
if (f_check == NULL)
{
printf("ERROR %d opening %s\n",errno,filename_checked);
return EXIT_FAILURE;
} else { printf("opened %s\n",filename_checked); }
compare = fgets(compare_line,sizeof(compare_line),f_compare);
while ( ! feof(f_compare) )
{
lines++;
fseek(f_check,0,0);
check = fgets(check_line,sizeof(check_line),f_check);
while ( ! feof(f_check))
{
if (strcmp(compare_line,check_line) == 0)
{
matches++;
break;
}
check = fgets(check_line,sizeof(check_line),f_check);
}
compare = fgets(compare_line,sizeof(compare_line),f_compare);
}
*matched = matches;
printf("%d lines read in first file and %d lines matched a line in the 2nd file\n",lines,matches);
fclose(f_check);
fclose(f_compare);
return EXIT_SUCCESS;
}
int main(int argc, char *argv[])
{
int matches;
if (argc < 3)
{
printf("ERROR: You must enter the two input filenames\n");
return EXIT_FAILURE;
}
int return_code = compareFiles(argv[1],argv[2],&matches);
if (return_code == EXIT_SUCCESS)
printf("%d lines in %s matched a line in %s\n",matches, argv[1],argv[2]);
else
printf("there was an error in processing the files\n");
}
0
只是安吉拉,只是研究C書你指向爲做這個只是作業的任務。它可能只有文件處理的整個章節。
你需要熟悉fopen(和fclose),fscanf,fseek和可能的memcmp,對於初學者來說。
相關問題
- 1. 檢查C#代碼使用的文件
- 2. 將C代碼文件合併爲一個C代碼文件
- 3. 檢查C編程代碼
- 4. Sonarquberunner檢查c#代碼
- 5. C++代碼加密檢查
- 6. 在C代碼中檢查文本框的代碼值#
- 7. F的文件檢查代碼#
- 8. C++/C Arduino秒錶代碼檢查
- 9. 如何使用c#2獲取檢查元素代碼
- 10. 在C#webbrowser控件中檢查這個遞歸代碼
- 11. 在C#代碼清理中合併2個TSV文件
- 12. 檢查代碼
- 13. 如何讓我的C#代碼檢查目錄中的每個文件?
- 14. C#重複代碼與空檢查
- 15. spamassassin檢查分數C#代碼
- 16. 檢查C#代碼混淆的效率
- 17. 比較兩個文件c代碼
- 18. 錯誤檢查文件c#
- 19. C:檢查文件大小
- 20. C#逐行檢查文件
- 21. 文件檢查在C#
- 22. 檢查密碼代碼
- 23. 從文件C代碼
- 24. 文件setprecision C++代碼
- 25. C;頭文件和代碼
- 26. 在java代碼中檢查迴文
- 27. 使用C#代碼檢查默認郵件客戶端
- 28. 如何檢查Chrome插件源代碼?
- 29. 檢查Java代碼Maven插件
- 30. 的Python:代碼檢查電子郵件
這些文件有多大(最大行數,每行最大字符數)? –
[你有什麼嘗試?](http://whathaveyoutried.com) – Minion91
最好的方法是獲取每個文件內容,查看第一行的內容是否出現在第二行中,然後就完成了。根據您所說的嘗試以及您給我們的代碼來作爲您的問題的示例,您可能無法理解這一點,但請繼續努力,有一天您會達到目的。 – Eregrith