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