程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 編程-我這代碼出什麼問題了,能查查嗎?

編程-我這代碼出什麼問題了,能查查嗎?

編輯:編程綜合問答
我這代碼出什麼問題了,能查查嗎?
 #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();
}


圖片說明

最佳回答:


你那中情況估計是你編譯器的問題,但是你這個程序中有一點小錯誤,就是你輸入一本圖書的信息之後輸入第二本就會出現一點小錯誤。
圖片說明
你在那個保存信息的那個子函數裡加一個getchar函數吸收掉那個回車換行的符號
圖片說明
至於我加那個int main 跟return 0;是因為編譯器不能通過void main 我用的是dev c++這個編譯器

John_ToString
YXTS122
YXTS122
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved