Я создаю оболочку и пытаюсь заставить обработку комментариев работать. Я могу передать в текстовом файле в качестве параметра. У меня есть текстовый файл «вывод», который выглядит следующим образом:
123
#456
$#789
и я хочу "завершить" любые строки, начинающиеся с '#'
, заменив #
на '\0'
.
int removeComments(char* fileName){
FILE* myfile;
int c;
myfile = fopen(fileName, "r+");
if(myfile == NULL){
fprintf(stderr, "cannot open %s\n", fileName);
exit(-1);
}
while((c = fgetc(myfile)) != EOF){
if(c == '$'){
c = fgetc(myfile); // (don't change '$#')
}
else if(c == '#'){
fseek(myfile, -1, SEEK_CUR);
fputc('\0', myfile); //replace '#' with '\0'
fseek(myfile, 0, SEEK_CUR);
}
}
return 0;
}
Если я сделаю так, чтобы я заменил '#'
на '!'
или любой другой символ, это прекрасно работает, изменив файл так:
123
!456
$#789
Однако после того, как я запустил этот код и ввел символы конца строки, я больше не могу открыть свой файл, мой компьютер говорит "Could not display "output". The file is of an unknown type"
. Как я могу предотвратить это? Или, если нужно, как я могу обойти это?