【发布时间】:2019-09-14 07:18:23
【问题描述】:
我正在编写一个程序来读取用户输入语句并从输入中提取所有整数。例如,如果我输入“h3ll0”,程序将输出“30”。我已经使用 fgets 函数来读取用户输入。
但是,我目前正在阅读有关 getchar() 的内容,并且想知道在我的程序中使用 getchar() 来读取用户输入而不是 fget 的最佳方法是什么。我不太清楚 getchar() 的工作原理以及它在什么情况下有用。
这个问题与一个项目有关,该项目专门要求 getchar() 作为读取用户输入的方法。由于我不清楚 getchar() 是如何工作的,所以我使用 fgets 构建了程序的其余部分以确保它正常工作。
#include <stdio.h>
int main()
{
char user_input[100];
int i;
int j = 0;
printf("Please enter your string: ");
fgets(user_input ,100, stdin);
for(i = 0; user_input[i] ; i++)
{
if(user_input[i] >= '0' && user_input[i] <= '9')
{
user_input[j] = user_input[i];
j++;
}
}
user_input[j] = '\0';
printf("Your output of only integers is: ");
printf("%s\n", user_input);
return 0;
}
【问题讨论】:
-
你的意思是“使用 getchar()”而不是“实现 getchar()”,不是吗?
-
留在
fgets(),免去很多麻烦和问题。 -
我认为你应该只将 99 个字符读入你的 100 个字符数组中,以便在结尾处为
'\0'留出空间。 -
你知道你可以edit你的问题来添加信息和解决潜在的误解,不是吗?
-
如果您有工作代码时必须使用
getchar(),那么请查看meta.stackoverflow.com/questions/334822/…,因为这似乎是典型的教师要求。
标签: c