こんにちは。C言語に関して質問があります。
データを新規登録するためのソースコードです。
csv形式で、キーボードから入力された値をテキストファイルに出力します。
/* 新規登録 */
#include <stdio.h>
#include <stdlib.h>
FILE *fp;
char *fname = "comma.csv";
main()
{
int no;
int ret;
printf("---会員管理システムメニュー---\n\n");
printf("1.新規登録\n");
printf("2.変更\n");
printf("3.削除\n");
printf("4.一覧表示\n");
printf("No? ");
ret=scanf("%d",&no);
if(no == 1)
{
ret = add_record();
}
}
int add_record()
{
int no;
char name;
char adress;
char tel;
char mail;
int choice;
printf("\n会員番号(0-10数値)? ");
scanf("%d",&no);
printf("会員名称(漢字,英語)? ");
scanf("%s",&name);
printf("住所(漢字,数字50文字)? ");
scanf("%s",&adress);
printf("電話番号(半角文字-で区切る)? ");
scanf("%s",&tel);
printf("メールアドレス(半角英数字)? ");
scanf("%s",&mail);
printf("新規登録しますか?(1:yes 2:no)? ");
scanf("%d",&choice);
fp = fopen(fname,"w");
if(fp == NULL)
{
printf("%ファイルが開けません\n",fname);
return -1;
}
fprintf(fp,"%d,%s,%s,%s,%s",no,name,adress,tel,mail);
fclose(fp);
printf("%sファイル書き込みが終わりました\n",fname);
return 0;
}
最初に1を入力し新規登録画面に入ります。
次に会員番号を1で入力。
会員名称をaで入力。
住所をaで入力。
電話番号をaで入力。
メールアドレスをaで入力。
新規登録しますか? で1を入力。
その結果、テキストファイルを見てみると、
0,(NULL),(NULL),(NULL),-・h という出力結果になります。
期待している動作は、キーボードから入力されたとおりに出力されること。
新規登録しますか?と聞かれた時に、2を選択したらmain()に処理が戻る事です。
どなたかアドバイスよろしくお願いします。
出力される値がおかしい
Re: 出力される値がおかしい
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。