scanf() 関数を使用して IO デバイスに出力する可能性はありますか?
main()
{
char str[30];
scanf("\n Name ?%s",&str);
printf("\n Name Entered is %s",str);
}
これを試して、私を助けてください。
scanf() 関数を使用して IO デバイスに出力する可能性はありますか?
main()
{
char str[30];
scanf("\n Name ?%s",&str);
printf("\n Name Entered is %s",str);
}
これを試して、私を助けてください。
このscanf
関数は、コンソールから入力を読み取り、解析します。何も印刷する手段がありません。それが、適切な名前printf
の関数ファミリーの目的です。
への最初の引数scanf
はプロンプトではなく (想定しているように見えます)、入力をスキャンするために使用されるフォーマット文字列です。
入力がリテラル文字列などを含め、期待されるものと正確にscanf
一致しない限り、これは失敗します。また、最初の空白で停止するため、入力すると名前のみが取得されます。プロンプトが必要な場合は、次のように事前に出力するだけです。"Name ?"
udhayar kumar
char str[30];
printf ("Name? ");
scanf ("%s", str);
printf ("Name Entered is %s\n", str);
ただし、バインドされていない%s
書式指定子scanf
は、プログラムをクラッシュさせたり、侵入できるセキュリティ ホールを誰かに与えたりする簡単な方法であることに注意してください (「バッファ オーバーフロー」を参照)。これは、入力の境界チェックがないためです。
まともな入力機能が必要な場合は、これをチェックしてください。行全体 (オプションのプロンプト付き) を取得し、エラー状態を適切に処理します。