fgets函数是C语言中用于从标准输入流(stdin)中读取字符串的函数。它的原型如下:
char *fgets(char *str, int n, FILE *stream);
该函数会从指定的输入流中读取最多n-1个字符(包括换行符),并将其存储在str指向的字符数组中。读取的字符包括换行符,且会自动在末尾添加一个字符串结束符'\0'。如果读取成功,则返回str的指针;否则返回NULL。
要使用fgets获取一个数字并清理stdin,可以按照以下步骤进行:
char input[100];
fgets(input, sizeof(input), stdin);
int number;
sscanf(input, "%d", &number);
int c;
while ((c = getchar()) != '\n' && c != EOF) {}
完整的代码示例如下:
#include <stdio.h>
int main() {
char input[100];
int number;
printf("请输入一个数字:");
fgets(input, sizeof(input), stdin);
sscanf(input, "%d", &number);
printf("您输入的数字是:%d\n", number);
int c;
while ((c = getchar()) != '\n' && c != EOF) {}
return 0;
}
这样,就可以使用fgets获取一个数字并清理stdin中的多余字符了。
注意:本回答中没有提及任何云计算品牌商的相关产品和链接地址,如有需要,请自行查找相关资料。
领取专属 10元无门槛券
手把手带您无忧上云