gpt4 book ai didi

无法在 Debian 上的 C 中获得正确的文件输出

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:53 26 4
gpt4 key购买 nike

我是 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;
}

无论我在测试文件中放入什么,我都会得到类型的输出

最佳答案

有几个错误,但这里有一个会打乱你的输出:

while((ch = fgetc(fp) != EOF)) {

在这里,您将 fgetc(fp) != EOF 的值分配给 ch。应该是;

while((ch = fgetc(fp)) != EOF) {

关于无法在 Debian 上的 C 中获得正确的文件输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56520636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com