代码之家  ›  专栏  ›  技术社区  ›  N 1.1

动态字符串输入-使用scanf(“%as”)

  •  9
  • N 1.1  · 技术社区  · 16 年前

    我正在尝试使用 scanf char * dynamically as specified by GCC manual ,但它给出了一个编译时错误。

      char *string;
      if (scanf ("%as",&string) != 1){
        //some code
      }
      else{
       printf("%s\n", *string);
       free(string);
       //some code
      }
    
    4 回复  |  直到 10 年前
        1
  •  10
  •   Nietzche-jou    16 年前

    a 扫描 如果您使用 -std=c99 旗帜确保你没有用那个。

    如果您至少有glibc的2.7版本,那么您可以并且应该使用 m A. .

    另外,您有责任释放缓冲区。

        2
  •  1
  •   Tronic    16 年前

    a 完全是修饰语。

        3
  •  0
  •   user65628 user65628    16 年前

    我在GCC方面的经验有限,但我从未见过 %a scanf %a 具有 %s 在你提供的第三行?

        4
  •  0
  •   N 1.1    16 年前

    scanf("%as") 如果 -ansi -std=c89 标志已启用。
    编译使用 gcc -ansi

    或者你可以用 scanf("%ms")