代码之家  ›  专栏  ›  技术社区  ›  mawia

通过scanf抑制输入空白

  •  0
  • mawia  · 技术社区  · 17 年前

    要禁止换行,我们使用%[^\n]。您能建议在输入中跳过空白的格式吗?例如,如果必须输入“Hallo StackFlow”。我知道fgets和gets,但我不想使用它们,它们造成了问题。

    2 回复  |  直到 8 年前
        1
  •  0
  •   Charlie Martin    17 年前

    在 scanf 格式化;抑制空白。

        2
  •  1
  •   dirkgently    17 年前

    我认为你的意思是“包括空格”。用途:

    #define str(x) #x
    #define xstr(x) str(x)
    /* ... */
    char buf[ SIZE + 1 ] = "";
    int rc = scanf("%" xstr(SIZE) "[^\n]%*[^\n]", buf);
    /*you may need the return value later on, if reading
      in multiple strings with whitespaces in a loop */
    if (!feof(stdin)) 
         getchar(); /* consume newline */
    
    推荐文章