Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我该如何在这里冲洗STDIN?_C_String_Input_Stdin - Fatal编程技术网

C 我该如何在这里冲洗STDIN?

C 我该如何在这里冲洗STDIN?,c,string,input,stdin,C,String,Input,Stdin,我有一个函数(在C中)从用户那里获取输入,(使用scanf)将其存储在无符号int中,并将输入返回给处理它的其他函数: unsigned int input(void) { unsigned int uin; scanf("%u", &uin); return val; } 我在想,既然我应该刷新stdin,我想使用一个while循环,使用getc,vis-a-vis: while (getc != '\n') { ... } 但是,我不知道如何: A

我有一个函数(在C中)从用户那里获取输入,(使用scanf)将其存储在无符号int中,并将输入返回给处理它的其他函数:

unsigned
int input(void)
{
    unsigned int uin;

    scanf("%u", &uin);
    return val;
}
我在想,既然我应该刷新stdin,我想使用一个while循环,使用getc,vis-a-vis:

while (getc != '\n') {
   ...
}
但是,我不知道如何:

A) 在getc内部执行操作,比如我应该如何处理检查并将值连接到所获得的每个字符,或者,无论我是否要连接到getc,然后从那里连接,完全删除scanf

B) 这是否是最恰当的方法

能找个好心人给我一些建议吗:)


谢谢。

我想在scanf格式字符串的末尾添加
%*[^\n]
*
表示它应该读取但忽略匹配的输入,
[^\n]
表示除换行以外的任何内容,就像在正则表达式中一样。

我将在scanf格式字符串的末尾添加
%*[^\n]
*
意味着它应该读取但忽略匹配的输入,
[^\n]
意味着除了换行符以外的任何东西,就像正则表达式一样。

因此,我认为您应该研究fgets()函数,忘掉刷新stdin的所有事情。:)因此,我认为您应该研究fgets()函数,忘掉刷新stdin的所有事情。:)就这样?!哇,呵呵,我想我必须添加一些妙语,但是:unsigned int function(void){unsigned int x;scanf(“%*[^\n]u”,&x);return x;}应该可以工作,不是吗?不是--你可以将它添加到你已经拥有的格式字符串的末尾。@stdinflush这并不重要,但仅供参考,
unsigned
unsigned int
(同样的
short
意思是
short int
)。就是这样?!哇,呵呵,我想我必须添加一些妙语,但是:unsigned int function(void){unsigned int x;scanf(“%*[^\n]u”,&x);return x;}应该可以工作,不是吗?不是--你可以将它添加到你已经拥有的格式字符串的末尾。@stdinflush这并不重要,但仅供参考,
unsigned
unsigned int
相同(同样的
short
表示
short int
)。