特にwhileループで
getchar()関数にどの変数を供給していますか?
この機能は有効ですか? gets()、fgets()、scanf()などのさまざまな「読み取り」関数で問題が発生します。これは他のような問題を与えるでしょうか?
char * mygets(char *s) { int i = 0, ch; while ((ch = getchar()) != '\n') s[i++] = ch; s[i] = '\0'; return s; } main() { char input[21]; printf("type anything:\n"); mygets(input); printf("output: %s\n", input); }
回答 2 件
1)getchar()は、入力されたとおりに1文字を取得します。...キーボードで1文字入力するのを「待機」します。
2)これは基本的な機能です。文字を使ってこれらのことを行うためのはるかに最適で高度な機能があります。
乾杯...
関連記事
- OCaml関数は明らかに機能しますが、期待される結果を返しません
- このコードでLambda関数はどのように機能しますか?
- 機能はChromeでは正常に機能しますが、Firefoxでは機能しません
- ここでアルゴリズムはどのように機能しますか?関数はそれ自体の内部で呼び出されます
- Mainで正しく機能するコードが関数内で正しく機能しないのはなぜですか? (C ++)
- 「get_roll」関数の場合、ユーザーの入力をどのように分割しますか。たとえば、「1d3」は、3面ダイスに対して1ロールを意味し、ランダムな整数として分割しますか?
- 関数のコピーを作成する手法はJavaScriptでどのように機能しますか(ストーリーブックの例)
getchar(3)またはgets(3)関数を使用すると、入力はプロセス標準入力から読み取られます。
Getsは一度に1文字を読み取るため、読み取った文字をカウントする必要があり、「使用可能なスペースの端からはみ出さない」ようにする必要があります。つまり、sの「サイズ」を渡す必要があります。
代わりにこのようなものを試してください。読み取った文字をカウントし、渡されたバッファーの終わりを超えないことを確認します。
サイズには正気の値のみを、sには正気の値のみを渡す必要があります(有効なcharバッファの少なくとも サイズ)。使用例: