我正在使用getchar()函数输入输入,当我在输入后按回车键时,我得到的循环内的c值与我输入的值一样好,但当我输入一个非数字时,循环中断。。。我输入的最新值是anew line,其ASCII值为10。
我怎么可能保留数字值。我只想c在循环中断后有一个数字值

#include<stdio.h>
#include<ctype.h>
main()
{
  int c =0;
  while(isdigit(c=getchar()))
  {
    printf("c is : %c\n",c);
  }
   printf("latest value of c(ASCII) is : %d\n",c);
}

最佳答案

一种方法是添加一个滞后变量,并在每次迭代时从c写入该变量:

#include<stdio.h>
#include<ctype.h>
int main(int argc, char *argv[])
{
  int c = '0', lastchar = 0;
  while(isdigit(c))
  {
    if(!lastchar)
    {
      printf("c is : %c\n",c);
    }
    lastchar = c;
    c = getchar();
  }
  printf("latest value of c(ASCII) is : %d\n",lastchar);
  return 0;
}

关于c - 如何在getchar()中获取最新值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29713261/

10-11 23:09
查看更多