我想從文件中刪除一行,當前我正在循環遍歷oldTodoFile
中的每一行,如果lineNumber
不等於todoNumber
,則將它添加到一個新文件(todoFile
)。它似乎並不是一種刪除線條的好方法,還有更好的方法來刪除線條嗎?更好的方式來刪除文件中的一行?
FILE *oldTodoFile;
oldTodoFile = fopen("./todo.txt", "r");
FILE *todoFile;
todoFile = fopen("./todo2.txt", "w");
int lineNumber = 0;
int len;
char line[4096];
if (oldTodoFile != NULL) {
while (fgets(line, sizeof line, oldTodoFile)) {
len = strlen(line);
if (len && (line[len - 1] != '\n')) {} else {
lineNumber++;
if (lineNumber == todoNumber) {
// Do nothing
} else {
fputs(line, todoFile);
}
}
}
} else {
printf("ERROR");
}
remove("./todo.txt");
rename("./todo2.txt", "./todo.txt");
fclose(oldTodoFile);
fclose(todoFile);
非常相似:http://stackoverflow.com/questions/1151713/delete-a-line-from-a-file-in-c-language – 2011-04-19 21:52:36
沒有出現在搜索:http:// stackoverflow。 COM /搜索?q =更好的方式+ +至+刪除+ A +線+在+ A +文件%3F – errorhandler 2011-04-19 21:54:25