sprintf未在范围内声明?

时间:2012-11-26 03:07:19

标签: c++ printf

我在这里设计了一小段代码,但我不断收到错误 sprintf未在范围内声明?

我是否在#includes中包含了一些内容,或者我如何才能使其正常工作?我正在我妈妈的VS上工作,但回到家里,我无法在代码块上得到它

            if (tmp2 <= B_dest[hr - 6])
            {
                sprintf(name, "B%d", tmp3);
            }else{
                sprintf(name, "A%d", tmp3);
            }

3 个答案:

答案 0 :(得分:27)

您需要加入stdio.h

#include<stdio.h>

stdio.h声明函数sprintf,没有标题,编译器无法理解sprintf的含义,因此它会给你错误。

在C ++中注意,

包括cstdiostd命名空间中导入符号名称,在全局命名空间中导入可能。 包括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;的问题

然而,它没有解决“未在此范围内声明”的问题