配列構造体
Posted: 2009年11月19日(木) 14:37
こんにちは。
初めて質問させていただきます。
名前、住所、誕生日、電話番号を格納する構造体の配列を10個作って、10人分のデータを入れたいのですがなぜか途中でコマンドプロンプトの表示が崩れて(文字化けが起こる)正常に終了できなくなってしまいます。
コンパイラは特にエラーを吐いていないので理由が分からなくて困っています。
使用しているコンパイラは「LSI C-86 Ver 3.30 試食版」です。
よろしくお願いします。
初めて質問させていただきます。
名前、住所、誕生日、電話番号を格納する構造体の配列を10個作って、10人分のデータを入れたいのですがなぜか途中でコマンドプロンプトの表示が崩れて(文字化けが起こる)正常に終了できなくなってしまいます。
コンパイラは特にエラーを吐いていないので理由が分からなくて困っています。
使用しているコンパイラは「LSI C-86 Ver 3.30 試食版」です。
よろしくお願いします。
#include<stdio.h>
#include<string.h>
struct date{
char name[128];
char address[128];
char birthday[128];
char phonenumber[128];
};
int getkey(char*a){
int i;
for(i=0;(a=getchar())!='\n';i++){
}
a='\0';
return strlen(a);
}
int getdate(struct date *p1){
char input[128];
printf("「名前」、「住所」、「生年月日」、「電話番号」を入力してください\n名前をどうぞ(全角で10文字まで)\n>");
getkey(input);
sprintf(p1->name,input);
printf("住所をどうぞ\n>");
getkey(input);
sprintf(p1->address,input);
printf("生年月日をどうぞ(yyyy/mm/dd)\n>");
getkey(input);
sprintf(p1->birthday,input);
printf("電話番号をどうぞ\n>");
getkey(input);
sprintf(p1->phonenumber,input);
return 0;
}
int main(void){
int i=0;
struct date Pdate[10];
for(i=0;i<6;i++){
printf("\n%d人目の",i+1);
getdate(&Pdate);
}
for(i=0;i<6;i++){
printf("\n%d人目の\n名 前:%s\n",i+1,Pdate.name);
printf("住 所:%s\n",Pdate.address);
printf("生年月日:%s\n",Pdate.birthday);
printf("電話番号:%s\n",Pdate.phonenumber);
}
return 0;
}