文件操作——不能正确从输出文件中的字符

#include
#include
int main()
{
    FILE *fp;
    fp=fopen("111.txt","r+");
    
    if(fp==NULL)
    {
    printf("flaut!");exit(0);
    }
    char c;
    while(c=fgetc(fp)!='@')
    {
        printf("%c",c);    
    }
    
    fclose(fp);
}

img

改动处见注释,供参考:

#include<stdlib.h>
#include<stdio.h>
int main()
{
    FILE *fp;
    fp=fopen("111.txt","r+");
    if(fp==NULL)
    {
        printf("flaut!");exit(0);
    }

    char c;
    while((c=fgetc(fp))!='@')  //(c=fgetc(fp)!='@') 修改
    {
        printf("%c",c);    
    }
    fclose(fp);
    return 0;   //修改
}


该回答引用ChatGPT

修改代码如下


#include <stdlib.h>
#include <stdio.h>

int main() {
    FILE *fp;
    fp = fopen("111.txt", "r+");

    if (fp == NULL) {
        printf("flaut!");
        exit(0);
    }

    char c;
    while ((c = fgetc(fp)) != '@') {
        printf("%c", c);
    }

    fclose(fp);

    return 0;
}


以下答案引用自GPT-3大模型,请合理使用:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    fp = fopen("111.txt", "r"); //以只读方式打开文件 

    if (fp == NULL)
    {
        printf("flaut!");
        exit(0);
    }
    
    char c;
    while ((c = fgetc(fp)) != EOF) //从文件中一次读取一个字符,直到遇到文件末尾 
    {
        if (c != '@') //不是输入结束符
            printf("%c", c);
        else
            break;
    }
    
    fclose(fp);
    return 0;
}

如果我的回答解决了您的问题,请采纳我的回答