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

Cプログラミング C言語

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;
}

コメント

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