Я новичок в C и пытаюсь удалить строку из текстового файла. У меня есть код, который удаляет указанную строку, но оставляет специальные символы �
в конце, и я понятия не имею, почему или как это исправитьit.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void removeBook(int line) {
FILE *file = fopen("bookrecord.csv", "r");
int currentline = 1;
char character;
FILE *tempfile = fopen("temp.csv", "w");
while(character != EOF) {
character = getc(file);
printf("%c", character);
if (character == '\n') {
currentline++;
}
if (currentline != line) {
putc(character, tempfile);
}
}
fclose(file);
fclose(tempfile);
remove("bookrecord.csv");
rename("temp.csv", "bookrecord.csv");
}
void main() {
removeBook(2);
}
В моем текстовом файле у меня есть Test1
и Test2
в отдельных строках, Test1
в строке 1 и Test2
в строке 2. При запуске функции она удаляетстрока 2 (Test2
), но оставляет специальный символ �
на своем месте.Почему?