我是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;
}
无论我将什么放在测试文件中,都会得到类型
的输出答案 0 :(得分:1)
这里有几个错误,但是会弄乱您的输出的是这里:
while((ch = fgetc(fp) != EOF)) {
在这里,您将ch
的值分配给fgetc(fp) != EOF
。应该是
while((ch = fgetc(fp)) != EOF) {