C言語によるscanf関数でのキーボード入力は、入力されるバイト数の上限が制限できないため、fgets関数を使う。ただ、fgets関数を使うと改行コードまで読み込まれてしまうため、必要に応じて、改行コードを削除する作業が必要になる。
プログラム
#include <stdio.h> #define MAX 5 int main() { char buf[MAX+1]; puts("max 5 chars"); printf("? "); fgets(buf, MAX+1, stdin); sscanf(buf, "%s\n", buf); // 改行を削除 printf("buf = |%s|\n", buf); return 0; }
コメント