我正在處理一個程序,該程序在文件中寫入文件時搜索一個結構中的特定字符串。如果我在該文件中找到匹配項,我需要覆蓋該結構的一部分。在文件中搜索匹配是非常容易的,但我正在努力覆蓋該結構。以下是我的代碼搜索文件,嘗試覆蓋該數據。C - 如何搜索一個文件並覆蓋它的一部分
dfp = fopen(archName, "ab");
if(dfp == NULL) {
printf("An error has occurred... %s could not be opened.\n", archName);
return 0;
} /* End if */
/* Read first header file */
fread(&getHeader, sizeof(getHeader), 1, dfp);
/* Check for match */
if(strcmp(fName[0], getHeader.file_name) == 0) {
getHeader.deleted = (char)49;
fwrite(&getHeader, sizeof(getHeader), 1, dfp);
請注意,getHeader是一個結構。有多個結構可以存儲在我的文件中的任何位置。我需要搜索每個標題的特定字符串(簡單)。當找到匹配項時,必須覆蓋該結構。
推薦什麼樣的過程來完成這樣的任務?
我實際上已經嘗試使用fopen的所有可用選項,但無濟於事......當我使用「r + b」作爲我的模式並嘗試覆蓋給定的結構時,我最終創建了一個新的結構直接跟在我希望覆蓋的結構之後......這是fseek會發揮作用嗎?我是否需要將指針設置回我想覆蓋的結構的開始位置? – kubiej21 2013-03-01 03:19:41
啊......只是意識到我在我的fseek電話中有一個錯字。感謝您的信息! – kubiej21 2013-03-01 03:40:23