YXTS122 2015-11-07 09:51 采纳率: 100%
浏览 1588
已采纳

我这代码出什么问题了,能查查吗?

 #include <stdio.h>  
#include <stdlib.h>  
#include <time.h>  
#include <string.h>  
#include <conio.h>  
typedef int BOOL;  
typedef struct bookinfo  
{
    char number[15];/*产品编号*/   
    char name[30];/*产品名称*/   
    float price;/*单价*/   
    char auther[20];/*作者*/   
    BOOL isExit;/*存在状态*/   
    char lendername[20];/*借书人姓名*/   
    char lendersex[2];/*借书人性别*/   
    char lendernum[15];/*借书人学号*/  
}BOOKINFO;  
void choice_1_input_new()/*输入新进的图书信息*/  
{
    char choice;   
    FILE *p;   
    BOOKINFO newbook;   
    system("cls");   
    while(1)   
    {
        printf("输入图书编号:");    
        gets(newbook.number);    
        printf("输入图书名称:");    
        gets(newbook.name);        
        printf("输入图书单价(小数点后一位):");    
        scanf("%f",&newbook.price);    
        while(getchar()!='\n');    
        printf("输入图书的作者:");    
        gets(newbook.auther);        
        printf("输入借书人姓名:");    
        gets(newbook.lendername);       
        printf("输入借书人性别:");    
        gets(newbook.lendersex);        
        printf("输入借书人学号:");    
        gets(newbook.lendernum);    
        printf("是否保存该条书目?(Y/N)\n");
        choice=getchar();
        while(choice!='Y'&&choice!='y'&&choice!='N'&&choice!='n')
            choice=getchar();
        if(choice=='Y'||choice=='y')
        {
            if(newbook.lendername=="\r"||newbook.lendersex=="\r"||newbook.lendernum=="\r")
                newbook.isExit=1;//将图书状态设置成1,表示没有借出
            else
                newbook.isExit=0;//将图书状态设置成0,表示借出
            p=fopen("c:\\bookinfo.txt","w");
            fwrite(&newbook,sizeof(BOOKINFO),1,p);
            fclose(p);
            printf("\n该条书目已添加到c:\\bookinfo.txt文件中!\n");
        }
        else
            printf("\n本条书目未保存!\n");
    }
}
void main()
{
    choice_1_input_new();
}


图片说明

  • 写回答

5条回答 默认 最新

  • 小耳朵朵喵喵 2015-11-07 10:04
    关注

    你那中情况估计是你编译器的问题,但是你这个程序中有一点小错误,就是你输入一本图书的信息之后输入第二本就会出现一点小错误。
    图片说明
    你在那个保存信息的那个子函数里加一个getchar函数吸收掉那个回车换行的符号
    图片说明
    至于我加那个int main 跟return 0;是因为编译器不能通过void main 我用的是dev c++这个编译器

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?