[解決済み] 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
関連
-
[解決済み】「ポインタから異なるサイズの整数へのキャスト」エラーが発生するのはなぜですか?
-
[解決済み】strcmpが機能しない
-
[解決済み】組み込み関数「malloc」の暗黙の宣言の非互換性
-
[解決済み] clang: error: linker command failed with exit code 1が表示されるのはなぜですか?
-
[解決済み】式は変更可能なL値でなければならない
-
[解決済み】C 未知の型名「my_structure」。
-
[解決済み】sizeof float (3.0) vs (3.0f)
-
[解決済み] エラー:整数が期待されるところで集約値が使用された
-
[解決済み】エラー:不明な型名'bool'
-
[解決済み】makefile:4。*** missing separator. 停止する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C 言語の添え字で配列の要素値を代入すると、配列でもポインタでもベクトルでもない値になる
-
[解決済み】Cコンパイルエラーです。Idは1終了ステータスを返した
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み】LEALアセンブリ命令は何をするのですか?
-
[解決済み】sizeof float (3.0) vs (3.0f)
-
[解決済み】スタックスマッシュを検出しました
-
[解決済み】エラー:呼び出されたオブジェクトは、関数または関数ポインタではない
-
[解決済み】execvp: バッドアドレスエラー
-
[解決済み】Linuxソケットのwrite()でBad File Descriptorが発生するC