0

ユーザーから入力を取得し、(scanf を使用して) unsigned int に格納し、それを処理する他の関数に入力を返す関数 (C) があります。

unsigned
int input(void)
{
    unsigned int uin;

    scanf("%u", &uin);
    return val;
}

標準入力をフラッシュする必要があるため、getc を使用して while ループを使用したいと考えていました。

while (getc != '\n') {
   ...
}

しかし、次の方法がわかりません。

A) getc 内で操作を行います。これは、取得した各文字に対してチェックを処理して値を連結する方法、または getc を使用するかどうかに関係なく、そこから連結して scanf を完全に削除する方法のように行います。

B) これが最も適切な方法であるかどうか。

親切な人が私にいくつかのヒントと指針を与えることができます:)

ありがとう。

4

1 に答える 1

4

%*[^\n]scanf フォーマット文字列の末尾に追加します。は*、一致する入力を読み取るが無視することを[^\n]意味し、正規表現のように、改行以外を意味します。

于 2009-10-21T00:40:05.847 に答える