2

stringC ++のクラスと同じように、CでEnterキーが押されるまでユーザー入力(文字列)を常に取得するにはどうすればよいですか?

入力サイズがわからないので、固定サイズの変数を宣言することも、malloc()orを使用してメモリを動的に割り当てることもできませんcalloc()

これを別の関数として実装する方法はありますか?

4

3 に答える 3

2

C では、選択の余地はほとんどありません。無制限の長さの文字列を入力する場合は、ループ内で割り当てを使用する必要があります。realloc()バッファのリンクされたリストを使用するかどうかに関係fgets()なく、読み込んだばかりのバッファに\n.

次に、メソッドに応じて、連続したバッファーが既に存在するか (reallocメソッド)、すべてを連結するだけで済みます (リンク リスト メソッド)。その後、戻ることができます。

運が良ければ、お使いのプラットフォームにはgetline()realloc メソッドを実行する拡張機能が付属しています。そうでない場合は、自分で書く必要があります。

于 2013-08-20T13:32:55.843 に答える