我在这里有一小段代码,来自我设计的东西,但我一直收到错误:
sprintf not declared in scope 我是否在#includes中包含了一些东西,或者我如何才能让它正常工作?我在我妈妈的VS上工作,但是回到家,我在代码块上找不到它
if (tmp2 <= B_dest[hr - 6])
{
sprintf(name, "B%d", tmp3);
}else{
sprintf(name, "A%d", tmp3);
}发布于 2012-11-26 11:10:09
您需要包含stdio.h。
#include<stdio.h>stdio.h声明了函数sprintf,没有头,编译器无法理解sprintf的含义,因此它会给出错误。
在C++中请注意,
包含cstdio会导入std名称空间中的符号名称,也可能导入全局名称空间中的符号名称。
包含stdio.h会导入全局名称空间中的符号名称,也可能导入std名称空间中的符号名称。
这同样适用于所有c样式的标头。
发布于 2012-11-26 11:10:02
确保你有#include <cstdio>
并根据@Potatoswatter的指示,以std::sprintf()的身份访问sprintf。
或者使用旧的c-style:#include <stdio.h>来包含sprintf的定义。
发布于 2014-03-05 18:07:31
我在C::B上也遇到过类似的问题,我发现这个问题不仅仅是编译器路径的问题--似乎集成开发环境本身在打开#include <...>文件时遇到了问题--这个问题可以通过设置默认编辑器和其他设置在打开文件时使用编码来解决:->
我的编码不是缺省的,这以某种方式导致集成开发环境在打开include <...>时出现问题
但是,它并没有解决“未在此范围内声明”的问题。
https://stackoverflow.com/questions/13558159
复制相似问题