文字列(名前)と誕生日を読み込み、表示するプログラムです。文字列を読み込むときに空行を入力すると、読み込みを終了して表示するようにしたのですが、うまくいきません。読み込む時に使う関数が違うのだと思います。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]);
}
}
No.2
- 回答日時:
>scanfとgets、fgetsは試したのですが、だめでした。
どう試して、どうだめだったのかを言ってくれないと
回答のしようがありません。
やりたいことはこういうこと↓ですか?
#include <stdio.h>
#include <stdlib.h> /* atoi() */
#include <string.h> /* strcpy() */
#define BUFF_LEN 64
#define DATA 3
int main(void)
{
char buff[BUFF_LEN];
int i;
for (i = 0; i < DATA; ++i) {
char name[BUFF_LEN];
int month, day;
printf("name = ");
fgets(buff, BUFF_LEN, stdin);
strcpy(name, buff);
printf("month = ");
fgets(buff, BUFF_LEN, stdin);
month = atoi(buff);
printf("day = ");
fgets(buff, BUFF_LEN, stdin);
day = atoi(buff);
printf("\nData #%d\n name: %s birthday: %2d %2d\n",
i + 1, name, month, day);
}
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- C言語・C++・C# C言語 3 2022/11/09 13:27
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Visual Basic(VBA) 1つの入力フォルダの値を読み込み、3分割をして新しい変数に代入する方法を教えていただきたいです。 読 4 2022/10/17 20:52
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
Cでファイルの行数をカウントす...
-
構造体メンバの初期化
-
C言語のプログラムで、途中で止...
-
プログラミングの授業の課題です
-
C言語で複数列のデータを1列の...
-
fread(),fwrite()等について
-
[C]セグメンテーションエラー:...
-
#defineが使用するメモリ領域に...
-
C++で指定文字列のカウント方法...
-
printf による16進表示について
-
fscanfの使い方
-
マイナスからプラスへ転じた時...
-
「指定されたキャストは有効で...
-
数字以外が入力されたらエラー...
-
C言語で簡単なパックマンゲーム...
-
比較回数と交換回数表示について
-
C言語での引数の省略方法
-
2÷3などの余りについて
-
4の倍数を論理演算で表す。。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
C言語で複数列のデータを1列の...
-
#defineが使用するメモリ領域に...
-
printf による16進表示について
-
空白を含んだ文字列がうまく格...
-
C言語のプログラムで、途中で止...
-
プログラミングの授業の課題です
-
char型2つを結合し、short型に...
-
C言語でのCSVファイルの読み出...
-
矢印キーを押下してコンソール...
-
【C言語】全角文字の配列を、全...
-
エラーについて質問です。
-
リストの作成と出力(C言語)
-
バイナリファイル(画像)のよみ...
-
[C]セグメンテーションエラー:...
-
WinInetのInternetOpenUrl関数...
-
VC++でSQLへSELECT文を送ったの...
-
受信データから必要な部分のみ...
-
c言語で文書を読み込み、単語の...
-
reallocでエラー
おすすめ情報