晴空的code 2022-05-27 23:01 采纳率: 75%
浏览 15
已结题

C语言文件处理问题!@#

文件中的开头内容是明明是空格,为什么却输出了1

#include<stdio.h>
#include<stdlib.h>
int main()
{

    int i, n;
    FILE* fp;
    if ((fp = fopen("temp", "w+")) == NULL)
    {
        exit(0);
    }
    for (i = 1; i <= 10; i++)
        fprintf(fp, "%3d", i);
    /*for (i = 0; i < 5; i++)
    {
        fseek(fp, i * 6L, SEEK_SET);
        fscanf(fp, "%d", &n);
        printf("%3d", n);
    }*/
    fseek(fp, 0, SEEK_SET);
    fscanf(fp, "%d", &n);
    printf("%3d", n);
    printf("\n");
    fclose(fp);

    return 0;
}



img

img

  • 写回答

1条回答 默认 最新

  • 李林罡 2022-05-27 23:47
    关注

    把21行读取的fscanf(fp, "%d", &n);中的%d换为%c,即可
    原因是%d格式读取时会忽略前面的空格
    修改后代码如下

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
     
        int i;
        char n;
        FILE* fp;
        if ((fp = fopen("temp", "w+")) == NULL)
        {
            exit(0);
        }
        for (i = 1; i <= 10; i++)
            fprintf(fp, "%3d", i);
        
        printf("\n");
        fseek(fp, 0, SEEK_SET); 
        while(fscanf(fp, "%c", &n)!=EOF){
            printf("%c", n);
        }
        
        printf("\n");
        fseek(fp, 0, SEEK_SET); 
        fscanf(fp, "%c", &n);
        if(n==' '){
             printf("n是空格 ");
        }
       
        printf("\n");
        fclose(fp);
     
        return 0;
    }
     
    

    img

    希望能帮到你。

    关于%d读取时空格忽略的验证实验如下,

    img

    #include <stdio.h>
    int main()
    {
        int n;
        printf("请输入一个数:");
        fscanf(stdin,"%d",&n);//忽略前面的空格直到取到第一个数字 
        printf("\n输入的数是%d",n);
        printf("\n");
        char line;
        fscanf(stdin,"%c",&line);//取出上次回车输入的\n 
        char c;
        printf("请输入一个字符:");
        fscanf(stdin,"%c",&c);//不会忽略空格,把空格当成字符读取了 
        printf("\n输入的字符是%c",c);
    
        printf("\n");
        return 0; 
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 已采纳回答 5月29日
  • 创建了问题 5月27日

悬赏问题

  • ¥15 对于这个问题的代码运行
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败