gpt4 book ai didi

c - 如何再次获取从其他文件复制的文件的内容

转载 作者:行者123 更新时间:2023-11-30 15:31:08 25 4
gpt4 key购买 nike

我已从一个(a.c)文件中删除了不必要的空格,并将其复制到另一个文件(b.c)中。现在我想读取 b.c 的内容,它给出了意想不到的输出。

#include<stdio.h>
void main()
{
FILE* fr, *fw;
char ch;
fr = fopen("a.c", "r");

if (!fr)
printf("a.c not found");

fw = fopen("b.c", "w");

if (!fw)
printf("b.c not found");

while ((ch = fgetc(fr)) != EOF) {
fputc(ch, fw);

if (ch == ' ') {
while ((ch = fgetc(fr)) == ' ') {
}

fputc(ch, fw);
}
}

fclose(fr);
fclose(fw);
fr = fopen("b.c", "r");

if (!fr)
printf("b.c file not found");

while (ch = fgetc(fr) != EOF)
printf("%c\n", ch);
}

最佳答案

如果您的意思是“不必要的空格”,我会考虑源代码中的所有空格。

您不应该在从文件中读取字符后立即调用 fputc(ch, fw)。

如果你删除它,它就会起作用。下面是修改后的代码。

#include<stdio.h>
void main()
{
FILE *fr,*fw;
char ch;
fr=fopen("a.c","r");
if(!fr)
printf("a.c not found");
fw=fopen("b.c","w");
if(!fw)
printf("b.c not found");
while( (ch=fgetc(fr))!=EOF)
{
if(ch== ' ')
{
while( (ch=fgetc(fr))== ' '){
}

}
fputc(ch,fw);
}
fclose(fr);
fclose(fw);
fr=fopen("b.c","r");
if(!fr)
printf("b.c file not found");
while(ch=fgetc(fr)!=EOF)
printf("%c\n",ch);
}

关于c - 如何再次获取从其他文件复制的文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25052112/

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