C言語:fgetsでキーボード入力された改行を取る

Cプログラミング C言語

C言語によるscanf関数でのキーボード入力は、入力されるバイト数の上限が制限できないため、fgets関数を使う。ただ、fgets関数を使うと改行コードまで読み込まれてしまうため、必要に応じて、改行コードを削除する作業が必要になる。

プログラム

1#include <stdio.h>
2#define MAX 5
3 
4int 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}

コメント

タイトルとURLをコピーしました