我使用的是win7 x64操作系统和VS2010。我遇到了一个错误,看起来像编译器或设置环境或类似的东西出了问题。它突然发生在我的编程中。首先,我的程序可以成功编译。然后,没有任何理由(或某些原因我没有意识到),程序出现了一长串错误提到“stdio.h”
然后我构建了一个新的测试项目,这是一个win32控制台应用程序,我遵循默认的“new->项目”程序,代码是这样的:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
这是默认代码(名为“test.cpp”)。然后我编译了它,并出现了相同的错误列表。它们如下:
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(238): error C2061: 语法错误: 标识符“_Printf_format_String_”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(240): error C2061: 语法错误: 标识符“_Printf_format_String_”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(253): error C2061: 语法错误: 标识符“_Scanf_format_String_”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(254): error C2061: 语法错误: 标识符“_Scanf_format_String_”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(258): error C2061: 语法错误: 标识符“_Scanf_s_format_String_”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(260): error C2061: 语法错误: 标识符“_Scanf_s_format_String_”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(285): error C2065: “_Printf_format_String_”: 未声明的标识符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(285): error C2143: 语法错误 : 缺少“)”(在“const”的前面)
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(285): warning C4229: 使用了记时错误: 忽略数据上的修饰符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(285): error C2491: “printf”: 不允许 dllimport 数据 的定义
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(285): error C2059: 语法错误:“)”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(287): error C2065: “_Printf_format_String_”: 未声明的标识符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(287): error C2143: 语法错误 : 缺少“)”(在“const”的前面)
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(287): warning C4229: 使用了记时错误: 忽略数据上的修饰符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(287): error C2491: “printf_s”: 不允许 dllimport 数据 的定义
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(287): error C2059: 语法错误:“)”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304): error C2065: “_Scanf_format_String_”: 未声明的标识符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304): error C2143: 语法错误 : 缺少“)”(在“const”的前面)
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304): warning C4229: 使用了记时错误: 忽略数据上的修饰符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304): error C2491: “scanf”: 不允许 dllimport 数据 的定义
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304): error C2059: 语法错误:“)”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(305): error C2065: “_Scanf_format_String_”: 未声明的标识符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(305): error C2143: 语法错误 : 缺少“)”(在“const”的前面)
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(305): warning C4229: 使用了记时错误: 忽略数据上的修饰符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(305): error C2491: “_scanf_l”: 不允许 dllimport 数据 的定义
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(305): error C2059: 语法错误:“)”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(309): error C2065: “_Scanf_s_format_String_”: 未声明的标识符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(309): error C2143: 语法错误 : 缺少“)”(在“const”的前面)
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(309): warning C4229: 使用了记时错误: 忽略数据上的修饰符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(309): error C2491: “scanf_s”: 不允许 dllimport 数据 的定义
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(309): error C2059: 语法错误:“)”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(311): error C2065: “_Scanf_s_format_String_”: 未声明的标识符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(311): error C2143: 语法错误 : 缺少“)”(在“const”的前面)
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(311): warning C4229: 使用了记时错误: 忽略数据上的修饰符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(311): error C2491: “_scanf_s_l”: 不允许 dllimport 数据 的定义
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(311): error C2059: 语法错误:“)”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(318): error C2061: 语法错误: 标识符“_Printf_format_String_”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(319): error C2065: “_Dest”: 未声明的标识符
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(319): error C2275: “size_t”: 将此类型用作表达式非法
...
...
c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(378): fatal error C1003: error count exceeds 100; stopping compilation
我试图重新启动VS2010并重新启动计算机,但它没有帮助。它让我发疯,任何身体都能帮忙吗?谢谢!
“stdafx.h”是这样的:
// stdafx.h : 标准系统包含文件的包含文件,
// 或是经常使用但不常更改的
// 特定于项目的包含文件
//
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
// TODO: 在此处引用程序需要的其他头文件
答案 0 :(得分:0)
如果排除<stdio.h>
会怎样?也许你不小心编辑了这个文件。 stdio.h的日期是几号?
您可以尝试使用etalon stdio.h并比较文件(使用WinMerge实用程序或类似文件)。同时C ++程序可以在没有它的情况下工作,<iostream>
就足够了。