向上的蜗牛 发表于 2018-8-24 15:59:27

为什么相同的代码结果会不一样

#include <stdio.h>

int main()
{
      char buffer;
      int n;

      n = snprintf(buffer, 6, "FishC.com");

      printf("buffer:%s\n", buffer);
      printf("n:%d\n", n);

      return 0;
}
这个我就是纯复制的{:10_255:}

claws0n 发表于 2018-8-24 17:08:33

snprintf() 只会存储 buffer[] 所容许的字符数,但仍然会数/计算字符串的长度

但是:If an encoding error occurs, a negative number is returned.
如果编译时有错误,返回负数 -1。
所以是编译器的问题

向上的蜗牛 发表于 2018-8-25 08:52:20

claws0n 发表于 2018-8-24 17:08
snprintf() 只会存储 buffer[] 所容许的字符数,但仍然会数/计算字符串的长度

但是:If an encoding err ...

那我用不了snprintf了吗{:10_245:}

claws0n 发表于 2018-8-25 19:47:21

向上的蜗牛 发表于 2018-8-25 08:52
那我用不了snprintf了吗

目前来说是的。可以自己写一个或者换编译器。我找到的是 gcc 3.3 可以(网路可以下载)。Borland C++ 也可以(比较难获得)。重点是下载了,你会不会放到编译环境里?百一下吧{:10_250:}
页: [1]
查看完整版本: 为什么相同的代码结果会不一样