我在这里设计了一小段代码,但我不断收到错误 sprintf未在范围内声明?
我是否在#includes中包含了一些内容,或者我如何才能使其正常工作?我正在我妈妈的VS上工作,但回到家里,我无法在代码块上得到它
if (tmp2 <= B_dest[hr - 6])
{
sprintf(name, "B%d", tmp3);
}else{
sprintf(name, "A%d", tmp3);
}
答案 0 :(得分:27)
您需要加入stdio.h
。
#include<stdio.h>
stdio.h
声明函数sprintf
,没有标题,编译器无法理解sprintf
的含义,因此它会给你错误。
在C ++中注意,
包括cstdio
在std
命名空间中导入符号名称,在全局命名空间中导入可能。
包括stdio.h
在全局命名空间中导入符号名称,在std
命名空间中导入可能。
这同样适用于所有c-style标题。
答案 1 :(得分:5)
确保您#include <cstdio>
并按照@Potatoswatter的指示访问sprintf std::sprintf()
。
或使用旧的c风格:#include <stdio.h>
包含 sprintf 的定义。
答案 2 :(得分:0)
我遇到了与C :: B类似的问题,发现问题不仅仅是编译器路径 - 似乎IDE本身在打开#include&lt; ...&gt;时遇到了问题。文件 - 然而这可以通过设置解决 - &gt;编辑 - &gt;其他设置 - &gt;打开文件时使用编码:默认
我的编码不是默认的,这在某种程度上导致IDE打开包含&lt; ...&gt;的问题
然而,它没有解决“未在此范围内声明”的问题