Я относительно новичок в Debian и C. Попытался написать программу, которая читает файл test.txt и создает файл temp.txt, который затем переименовывается в test.txt.Однако каждый раз, когда я запускаю программу, я получаю нечитаемый вывод.Кроме того, программа не читает файл из рабочего каталога, поэтому мне пришлось использовать полный путь.Есть ли способ исправить это?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define FILENAME "/home/deusi/Programming/Personal/C/toUpperCase/test.txt"
#define TEMPFILE "/home/deusi/Programming/Personal/C/toUpperCase/temp.txt"
int main() {
FILE *fp = NULL;
FILE *temp = NULL;
char ch;
fp = fopen(FILENAME, "r");
if (!fp) {
perror("File DNE");
return -1;
}
temp = fopen(TEMPFILE, "w");
if(!temp) {
return -1;
}
while((ch = fgetc(fp) != EOF)) {
if(islower(ch)) {
ch = ch-32;
}
fputc(ch,temp);
}
fclose(fp);
fclose(temp);
rename(TEMPFILE, FILENAME);
remove(TEMPFILE);
if(!fp) {
return -1;
}
while ((ch = fgetc(fp)) != EOF) {
printf("%c", ch);
}
return 0;
}
Независимо от того, что я положил в тестовый файл, я получаю вывод типа