string
C ++のクラスと同じように、CでEnterキーが押されるまでユーザー入力(文字列)を常に取得するにはどうすればよいですか?
入力サイズがわからないので、固定サイズの変数を宣言することも、malloc()
orを使用してメモリを動的に割り当てることもできませんcalloc()
。
これを別の関数として実装する方法はありますか?
C では、選択の余地はほとんどありません。無制限の長さの文字列を入力する場合は、ループ内で割り当てを使用する必要があります。realloc()
バッファのリンクされたリストを使用するかどうかに関係fgets()
なく、読み込んだばかりのバッファに\n
.
次に、メソッドに応じて、連続したバッファーが既に存在するか (realloc
メソッド)、すべてを連結するだけで済みます (リンク リスト メソッド)。その後、戻ることができます。
運が良ければ、お使いのプラットフォームにはgetline()
realloc メソッドを実行する拡張機能が付属しています。そうでない場合は、自分で書く必要があります。