2201_75525666 2023-02-10 15:51 采纳率: 100%
浏览 36
已结题

c语言将文件内容输入输出

你好,请问为什么会出现这种情况

img

#include<stdio.h>
#include<stdlib.h>
void tj();
void yl();
void menu();
struct number
{
    char no[20];
    char name[20];
    char address[20];
    char phone[20];
}s[100];
int main()
{
    int i;
    menu();    
    scanf("%d",&i);
    switch(i)
    {
        case 1:tj();break;
        case 2:yl();break;
    }
}
void tj()
{
    int i=0,m;
    FILE *fp;
    char ch;
    fp=fopen("C:/Users/陈/Desktop/student.dat.txt","r");
    ch=fgetc(fp);
    if(ch==NULL)
    {
        printf("打开失败");
    }
    else
    {
        fclose(fp);
        printf("输入Y继续输入,输入N退出\n");
        scanf("%c",&ch);
        getchar();
        while(ch=='Y')
        {
            printf("学号");
            gets(s[i].no);
            printf("姓名");
            gets(s[i].name);
            printf("地址");
            gets(s[i].address);
            printf("电话号码");
            gets(s[i].phone);
            i++;
            printf("输入Y继续输入,输入N退出\n");
            scanf("%c",&ch);
            getchar();
        }
        fp=fopen("C:/Users/陈/Desktop/student.dat.txt","a");
        ch=fgetc(fp);
        if(ch==NULL)
        {
            printf("打开失败");
        }
        else
        {
            for(m=0;m<=i;m++)
            {
                fwrite(&s[m],sizeof(s),1,fp);
            }
            fclose(fp);
        }
    } 
}
void yl()
{
    FILE *fp;
    char ch;
    int i=0,m;
    fp=fopen("C:/Users/陈/Desktop/student.dat.txt","r");
    ch=fgetc(fp);
    if(ch==NULL)
    {
        printf("未找到学生信息"); 
    }
    else
    {
        fseek(fp,0,SEEK_SET);
        while(!feof(fp))
        {
            fread(&s[i],sizeof(s),1,fp);
            i++;
        }
        for(m=0;m<i;m++)
        {
            printf("学号%s",s[m].no);
            printf("姓名%s",s[m].name);
            printf("地址%s",s[m].address);
            printf("电话号码%s",s[m].phone);
        }
    }
}
void menu()
{
    printf("1.添加学生信息\n");
    printf("2.浏览学生信息\n");
}

  • 写回答

1条回答 默认 最新

  • 於黾 2023-02-10 15:58
    关注

    %d你输入了1,后面带个换行符
    后面getchar直接获得了换行符

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月10日
  • 已采纳回答 2月10日
  • 创建了问题 2月10日

悬赏问题

  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊