zoukankan      html  css  js  c++  java
  • C语言-防止输入字母

      今天群里一位小伙伴问了一个关于scanf函数的问题:

      scanf("%d", &n); 

      这个代码怎么防止输入字母?

      因为他下面是判断n是否为质数,所以这里肯定有个判断,不然输入字母后就乱跑了。

      

    #include<stdio.h>
    
    int main(void)
    {
      long int n;
      int line=0,i,j;
      printf("输入一个数据
    ");
      while(scanf("%ld", &n) == 1)
          {
                  if(n<=1)
    
                  {
                    printf("没有满足条件的数据!
    ");
                   return (1);
                  }
                  for(i=2;i<=n;i++)
                  {
                   for(j=2;j<i;j++)
                    if(i/j*j==i)
                    break;
                    if(j==i&&i%10!=9)
                    {
                    printf("%d",i);
                    line++;
                    if(line==10)
                      {
                      printf("
     
    ");
                       line=0;
                      }
                     printf("
    ");
                    }
                  }
           }
    
    
       return 0;
    }
    

      我给他提供的办法是:

    while(scanf("%ld", &n) == 1)

      这段代码,通过判断scanf的返回值为输入值的个数,这样就可以了,这在竞赛题里面经常遇到,但一般人平时没有遇到就不会关注了。

      另外还可以添加:fflush(stdin);清除缓冲区,一般当多次连续使用scanf函数时,都要清除缓存区,平时的 也是如此。

  • 相关阅读:
    hdu 1.2.4
    交换机&&路由器
    AP、AC、无线路由器
    肩胛骨
    无线路由器
    背部肌肉
    胸部肌肉
    redis未授权访问
    进制
    攻防实验
  • 原文地址:https://www.cnblogs.com/lemaden/p/10200536.html
Copyright © 2011-2022 走看看