-1
A
回答
3
首先,您似乎沒有將正確的參數傳遞給fseek
(更具體地說是最後一個參數)。其次,文本文件中的行很少有固定的寬度,所以你不能使用特定的數字來返回「四行」。
相反,您必須一次尋找一個字符以找到正確的位置。這是不使用查找功能,並根據該文件,你可能會想要麼
- 閱讀這一切到內存緩衝區,其中可以很容易地「求」
- 作爲替代以上,內存非常有效映射整個文件
- 商店行萬事開頭的位置,所以你可以很容易地跳來跳去
0
所以fseek
不能由一個或兩行回去?你能給我一個簡單的例子嗎?
fp= fopen("liste.txt", "r"); // this is where i have list of names and ages and and ...
new_fp=fopen("sec_list.txt","w");// this is where i will stock new infos
do {
fgets(ligne, 100, fp);
if (strcmp(tel, ligne)!=0) // if "Tel" isnt the same content as "Ligne"
{
fputs(ligne, new_adherent);
}
else {
printf("\n the adherent is founded \n");
fseek (fp, -124, -4);// back by 124 caractere and 4 lines or something like that
do{
ch = fgetc(fp);
if(ch == '\n'){
lines++;
}
}while (lines<7);
printf("\n\t DELETED \n");
}
}while(!feof(fp));
fclose(fp);
fclose(new_fp);
remove("liste.txt");
rename("new_liste.txt", "liste.txt");
+1
歡迎來到Stack Overflow。代碼佈局令人震驚 - 請修復。小心使用'feof()' - 這裏的代碼在'do ... while(!feof(fp));'循環中使用它可能是正確的,但通常根本沒有必要使用它。更重要的是,'-4'打算做什麼?它是100%非猶太教徒。 –
相關問題
- 1. C編程讀取文本文件
- 2. C#文本編程
- 3. C編程 - 編寫自行編譯的文本文件
- 4. C++編輯文本文件
- 5. C#編輯文本文件
- 6. 文本文件編輯C
- 7. 大文本回去的ImageView
- 8. C++顯示一個文本文件......(「回聲」的文本文件)
- 9. 純文本文件或加密文件(C編程)
- 10. C#文本編寫的文件
- 11. 編輯文本C++中的文件
- 12. 編輯文本文件編程
- 13. 從C編程中的文本文件讀取
- 14. 閱讀的文本文件,編程使用Objective-C
- 15. C編程的文本文件不讀整條生產線
- 16. C編程讀取文件
- 17. 文件鎖定C編程
- 18. C編程 - 文件 - fwrite
- 19. C編程文件I/O
- 20. C++ |文本文件hardtime(行編輯)
- 21. 編輯在C文本文件
- 22. 訪問「文本編輯」中的存儲文本文件,Qt C++
- 23. c編程文本文件結構和fgets時出錯
- 24. C#編程如何從文本文件中grep列/行?
- 25. 關於在C編程中保存文本文件
- 26. 從文本文件讀入數組到C編程語言
- 27. C編程 - 如何刪除文本文件尾隨零
- 28. 在C編程中讀取/寫入文本文件
- 29. 覆蓋文本文件編程
- 30. java編程,寫入文本文件
你可以顯示你的代碼,並解釋到底什麼是行不通的? – Marievi
'fseek'隻影響圖書館認爲讀取/寫入的下一個文件位置的位置。它不會影響屏幕上已有的輸出。你可以打印出''\ b''來刪除已經寫好的字符,但是當你讀到一行的開頭時,不能保證它會繼續刪除前一行的字符。爲了可靠地做你想做的事情,你需要超出標準庫提供的功能(例如,你可能想用'curses'來看看)。 –