gpt4 book ai didi

c - 如何使用 getchar 监视用户输入

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:47 24 4
gpt4 key购买 nike

我需要获取用户输入并检查它是否有效。输入必须:

  • 空格(可以是多个)或数字开头。
  • (假设满足条件一)数字后面可能有任何类型的字符,只要我设法提取数字

数字有效值说明:

  • 可以是多位数
  • 不能为负数
  • 不能包含小数点
  • 不能是科学记数法
  • 不能是十六进制

所以我写了这个简单的获取输入的基本代码,但我不知道从哪里开始应用这些条件

    printf("Enter size of input:\n");
int c;
while((c=getchar())!='\n' && c!=EOF){
printf("%c",c);
}

例如:

  • 输入 - 4#@2311413sadokalda ;预期输出 - 4

  • 输入 - !4a ;预期输出 - 无效大小

最佳答案

你可以有如下状态机。

printf("Enter size of input:\n");
int c;
int state = 0; //0 = space, 1 = number, 2 = number read
int number = 0;
while((c=getchar())!='\n' && c!=EOF){
switch(state)
{
case 0:
if (isdigit(c))
state = 1;
else if (c == ' ')
break;
else
//error
break;

case 1:
if (isdigit(c))
{
number = number*10 + (c-'0');
break;
}
else {
state = 2;
}

case 2:
printf ("%d\n",number);
}
}

关于c - 如何使用 getchar 监视用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58690594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com