1. ホーム
  2. c

[解決済み] C言語を使ってユーザー入力からテキストを取得する

2022-03-08 05:49:27

質問

私はC言語を勉強しているところで、基本的な "hello, NAME" プログラムを作成しています。ユーザーの入力を読み取るように動作させたのですが、入力した内容ではなく数字で出力されてしまうのですが?

何が間違っているのでしょうか?

#include <stdio.h>

int main()
{
    char name[20];

    printf("Hello. What's your name?\n");
    scanf("%d", &name);
    printf("Hi there, %d", name);

    getchar();
    return 0;
}

解決方法は?

間違ったフォーマット指定子を使っている %d - を使用する必要があります。 %s . より良いのはfgetsを使うことです。scanfはバッファセーフではありません。

ドキュメントに目を通せば、それほど難しいことではないはずです。

スキャンフ フィッツ

サンプルコードです。

#include <stdio.h>

int main(void) 
{
    char name[20];
    printf("Hello. What's your name?\n");
    //scanf("%s", &name);  - deprecated
    fgets(name,20,stdin);
    printf("Hi there, %s", name);
    return 0;
}

入力です。

The Name is Stackoverflow 

出力します。

Hello. What's your name?
Hi there, The Name is Stackov