tommy

It's hard to tell the world we live in is either a reality or a dream
posts - 52, comments - 17, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
snprintf函数并不是标准c/c++中规定的函数,但是在许多编译器中,厂商提供了其实现的版本。
在gcc中,该函数名称就snprintf,而在VC中称为_snprintf。
  由于不是标准函数,没有一个统一的标准来规定该函数的行为,所以导致了各厂商间的实现版本可
能会有差异。今天也的的确确看到了差异,因为这个小小的差异是我的程序无法正常的处理数据。
  这个小小的差异发生在count参数。在VC中,这个count就是要写入的总字符串字符数,例如:

    
//VC
int main(int argc, char* argv[])
{
    
char   buff[100
];
     printf(
"%d ",_snprintf(buff,10,"1234567890ab"
));
     printf(
"%s"
,buff);
    
return0
;
}


//Linxu:gcc/g++
#include <stdio.h>
int main(int argc, char* argv[])
{
    
char   buff[100
];
     printf(
"%d ",snprintf(buff,10,"1234567890ab"
));
     printf(
"%s"
,buff);
    
return0
;
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理