getchar()の改行文字のクリア

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Ohagi
記事: 31
登録日時: 3年前

getchar()の改行文字のクリア

#1

投稿記事 by Ohagi » 3年前

getchar()で1文字取得する際に改行文字をどうにかしたいです。

scanf関数の方はWikipediaに詳しい記述があったのでどうにかなりましたが、getchar()関数についてはどのようにすればいいのでしょうか?

コード:

#include <stdio.h>

int main(void)
{
  int ch;
  
  while(1) {
    printf("ch = ");  ch = getchar();
    printf("ascii code = %d\n", ch);
  }

  return 0;
}

アバター
Dixq (管理人)
管理人
記事: 1659
登録日時: 8年前
住所: 北海道札幌市
連絡を取る:

Re: getchar()の改行文字のクリア

#2

投稿記事 by Dixq (管理人) » 3年前

> getchar()で1文字取得する際に改行文字をどうにかしたいです。

「改行コードをスキップしたい」ということですかね?それであればこんな関数を作ってみてはどうでしょうか。

コード:

#include <stdio.h>

int my_getchar() {
	int ch;
	while (1) {
		ch = getchar();
		if (ch != '\n') {
			return ch;
		}
	}
}

int main(void)
{
	int ch;

	while (1) {
		printf("ch = ");
		ch = my_getchar();
		printf("ascii code = %d\n", ch);
	}

	return 0;
}

Ohagi
記事: 31
登録日時: 3年前

Re: getchar()の改行文字のクリア

#3

投稿記事 by Ohagi » 3年前

管理人様でしょうか?
返信の方ありがとうございます。

C言語初心者でどうすればいいのかよく分かりませんでしたが
そのように改行文字を飛ばす方法があるのですね。

勉強になりました、ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る