trim_left_lfでfgetsの末尾の改行問題が解決したので、これで入力フォーム関数input_str_formが作れる・・・。
#include <stdio.h> #include <string.h> int trim_left_lf(char *str); void input_str_form(char *caption, char *buf, int size);
captionは入力フォームのタイトル、bufに入力文字列を格納するバッファ、sizeにバッファのサイズを指定する・・・。
中でtrim_left_lfを呼んでるので、そのプロトタイプ宣言、stdio.h、string.hは当然必要となる・・・。
input_str_formの仕組みは単純・・・。
まず、fputsでcaptionを出力・・・。
次に、fgetsで入力文字列をbufに格納・・・。
bufをtrim_left_lfにかけて、改行を除去・・・。
これだけである・・・。
あとは、このフォームで入力された文字列を他の関数でパースするなり、煮るなり、焼くなり・・・。
入力文字列をただ出力してみる・・・。
$ ./input_str_form str: hoge foo bar str = hoge foo bar $
改行はされないし、スペースもいける・・・。