代码:
#include "stdafx.h"
#include "stdlib.h" char* getcharBuffer()
{
return "1919,3a3a";
}
void changeto4(char * buffer)
{
while(*buffer)
{
if(*buffer == '')
{
*buffer='';
}
buffer++;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
printf("%s\n","Any key continue...");
getchar();
char *str=getcharBuffer();
changeto4(str);
printf("%s",str);
return ;
}
编译报错:无法打开包括文件:“stdafx.h”: No such file or directory
刚换的vs2012。网上各种搜索,知道了解决办法。就是注释掉这一行,因为这个头文件主要作用就是较快速度之类的。注释掉对主程序影响不大。但是我想知道为什么 我的会报错。
//自己找到问题的答案了,给遇到同样问题的同学分享一下。
//摘自《VC++ 编程指南》
预编译头文件:STDAFX.CPP,STDAFX.H
这两个文件用于建立一个预编译的头文件xxxproject.PCH和一个预定义的类型文件STDAFX.OBJ。由于MFC体系结构非常大,包含许多头文件,如果每次都编译的话比较费时。因此,我们把常用的MFC头文件都放在stdafx.h中,如afxwin.h、afxext.h、afxdisp.h、afxcmn.h等,然后让stdafx.cpp包含这个stdafx.h文件。这样,由于编译器可以识别哪些文件已经编译过,所以stdafx.cpp就只编译一次,并生成所谓的预编译头文件(因为它存放的是头文件编译后的信息,故名)。如果读者以后在编程时不想让有些MFC头文件每次都被编译,也可以将它加入到stdafx.h中。采用预编译头文件可以加速编译过程。
//所以我的代码报错的原因就是我没有创建这个文件,所以提示找不到头文件stdsfx.h。
因为我是用VS2012创建的空项目,所以VS没有自动生成stdafx.h这个头文件。这样会导致后面的_tmain()函数报 error C2061: 语法错误: 标识符“_TCHAR”,输入输出函数也找不到:error C3861: “printf”: 找不到标识符。
看了上面的解释之后,其实就很简单了。既然没有这个头文件,那么就注释掉。自己手工加上需要的头文件即可
//#include "stdafx.h"
#include <stdio.h>
#include "stdlib.h"
#include <tchar.h>