文字列の入力
文字列(名前)と誕生日を読み込み、表示するプログラムです。文字列を読み込むときに空行を入力すると、読み込みを終了して表示するようにしたのですが、うまくいきません。読み込む時に使う関数が違うのだと思います。scanfとgets、fgetsは試したのですが、だめでした。
教えてください。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define DATA 3
int main()
{
char *name[DATA];
char work[31];
int month[DATA];
int day[DATA];
int count1,count2;
printf("Data #1\n");
printf("name =");
fgets(work,31,stdin);
for(count1=0;(work[0]!='\n')&&(count1<DATA);count1++){
printf("month =");
scanf("%d",&month[count1]);
printf("day =");
scanf("%d",&day[count1]);
name[count1]=(char *)malloc((strlen(work)+1)*sizeof(char));
strcpy(*(name+count1),work);
printf("\n");
if(count1<DATA-1){
printf("Data #%d\n",count1+2);
printf("name =");
fgets(work,31,stdin);
}
}
for(count2=0;(count2<DATA)&&(count2<count1);count2++){
printf("Data #%d\n",count2+1);
printf(" name: %s\n",*(name+count2));
printf(" birthday: %2d %2d\n",month[count2],day[count2]);
}
}
お礼
返答ありがとうございます。 staticを付けても変わらないです ただ単に char str[10001]="1万文字~~~~~~略"; のようにscanfなどの入力を使わないで出力するだけなら1万文字は出力されます 該当のコードを提出したところ問題はなかったので提出先の環境では1万文字を受け取り処理したようです。