首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >snprintf和Visual Studio 2010

snprintf和Visual Studio 2010
EN

Stack Overflow用户
提问于 2010-05-27 02:25:12
回答 5查看 79.3K关注 0票数 106

不幸的是,我在一个项目中使用VS2010,并注意到以下代码仍然不能使用非标准兼容的编译器构建:

#include <stdio.h>
#include <stdlib.h>

int main (void)
{
    char buffer[512];

    snprintf(buffer, sizeof(buffer), "SomeString");

    return 0;
}

(编译失败,错误为: C3861:'snprintf':未找到标识符)

我记得很久以前VS2005就是这种情况,我很震惊地看到它仍然没有得到修复。

有没有人知道微软是否有计划将他们的标准C库迁移到2010年?

EN

回答 5

Stack Overflow用户

发布于 2010-05-27 02:31:42

snprintf不是C89的一部分。它只在C99中是标准的。微软有no plan supporting C99

(但它也是C++0x中的标准...!)

有关解决方法,请参阅下面的其他答案。

票数 34
EN

Stack Overflow用户

发布于 2015-10-28 19:31:34

如果不需要返回值,也可以将snprintf定义为_snprintf_s

#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__)
票数 8
EN

Stack Overflow用户

发布于 2010-05-27 02:29:37

我相信视窗的等价物是sprintf_s

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2915672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档