1

情報を入力した後にエラーが発生します。どこで間違いを犯したのかわかりません。構造を介して情報を取得し、biodata.txt ファイルに保存したいです。これは私のプログラムを開始するためのものであり、「削除編集検索」を追加します。オプション。

#include <stdio.h>
#include <conio.h>

struct biodata{
       int recno,age;
       char name[20],sex;
       float salary;
}obj;

int main(){
    int addData();
    int showRecord();
    char choice;

    while(1){
        printf("\n\n*****CHOOSE YOUR CHOICE*****\n");
        printf("1) ADD DATA\n");
        printf("2) SHOW RECORD\n");
        printf("Enter your choice : ");

        choice = getche();
        switch(choice){
            case '1' :  
                addData();
                break;
        }
    }
}

int addData(){
     FILE *fp;
     fp = fopen("biodata.txt","w+");

     printf("\n*****ADDING DATA*****\n");
     printf("\nEnter Record No : ");
     scanf("%d",&obj.recno);
     printf("Enter Name : ");

     scanf("%s",obj.name);
     printf("Enter age : ");
     scanf("%d",&obj.age);

     printf("Enter Sex : ");
     scanf("%s",obj.sex);

     printf("Enter Salary : ");
     scanf("%f",&obj.salary);
     fwrite(&obj,sizeof(obj),1,fp);

     fclose(fp);
}
4

1 に答える 1

3

あなたがやっている:

printf("Enter Sex : ");
scanf("%s",obj.sex);

しかし obj.sex は char 型です:

struct biodata{
        int recno,age;
        char name[20],sex;
        float salary;
}obj;

scanf を次のように変更します。

scanf("%c",&obj.sex);
于 2012-05-14T10:24:23.337 に答える