错误C3861:'system':找不到标识符

时间:2013-07-07 10:45:22

标签: c++ visual-studio-2010 system intellisense identifier

我刚在VS 2010中启动了一个新的win32控制台应用程序,并在即将推出的向导中将Additional options属性设置为precompiled header

基于one of my previous questions我决定使用以下主要原型:

int main(int argc,  char* argv[])

我还将项目的Character Set属性更改为Use Multi-Byte Character Set

但是,以下代码:

system("pause");

会产生这两个错误:

error C3861: 'system': identifier not found  
IntelliSense: identifier "system" is undefined

之前我有同样的经历,没有错误!
谁能告诉我什么是错的?

2 个答案:

答案 0 :(得分:7)

在C ++中,您必须包含包含函数声明的相应头文件才能使用它,否则您将收到有关未找到标识符的编译器错误。

对于system函数,它在stdlib.h头文件中定义。

因此,在代码文件的顶部(或在预编译的头文件中),添加行

#include <stdlib.h>

(您使用尖括号而不是引号,因为stdlib.h是在构建工具先前已被告知的位置找到的标头;这包括系统标头目录和构建配置专门要求的其他目录。 )

除此之外,我强烈使用多字节字符集(所有新的Windows应用程序应支持Unicode)或system函数推荐 尤其 system("pause")

答案 1 :(得分:3)

对我有用的是确保#include "stdafx.h"是文件中的第一个包含内容。所以#include <iostream>因此会在此之后。

这样做解决了这个问题。