c++编程总是 error C2065: 'printf' : undeclared identifier

#include "StdAfx.h"
#include <Mil.h>

int main(int argc, char* argv[])//MIL转换为unsigned char*
{
MIL_ID MilApplication, MilSystem, MilDisplay, mImg;
MappAllocDefault(M_SETUP, &MilApplication, &MilSystem, &MilDisplay, M_NULL, M_NULL); // MIL函数的系统申请
MbufRestore("3Gray.bmp", M_DEFAULT, &mImg); //Restore方式加载图像函数, 单通道图像
printf("显示mImg!\n");
MdispSelect(MilDisplay, mImg);//显示图像mImg
getchar();//停顿,观察图像回车结束

int SizeX, SizeY, band;
MbufInquire(mImg, M_SIZE_X, &SizeX); //读取图像的长
MbufInquire(mImg, M_SIZE_Y, &SizeY); //读取图像的宽
MbufInquire(mImg, M_SIZE_BAND, &band);//读取图像的通道数

unsigned char* p = new unsigned char[band*SizeX*SizeY]; //unsigned char*的内存申请,注意其后的释放!
MbufGet(mImg, p); // 把 MIL的图像内存转换为unsigned char*的数据内存

// for (int k = 0; k < band*SizeX*SizeY/2; ++k)
// {
//
// p[k] = 0;
//
//
//
// }
int n=band*SizeX*SizeY;

for (int k = 0; k < n/2; ++k)
{

p[k] = 255;

}

for (int a=n/2; a<n; ++a)
{

p[a]= 0;

}

MIL_ID mImg1;
MbufAlloc2d(M_DEFAULT, SizeX, SizeY, (8+M_UNSIGNED), (M_DISP+M_PROC+M_IMAGE), &mImg1);
MbufPut(mImg1, p);
printf("显示mImg1!\n");
MdispSelect(MilDisplay, mImg1);//显示图像mImg1
getchar();//停顿,观察图像回车结束
MbufFree(mImg1);

printf("SizeX = %d\nSizeY = %d\nband = %d\n", SizeX, SizeY, band);
delete[] p;//注意这是对unsigned char*内存的释放!
MbufFree(mImg);//注意这是对MIL内存的释放!
MappFreeDefault(MilApplication, MilSystem, MilDisplay, M_NULL, M_NULL);//MIL函数的系统关闭(注意申请后立马关闭!)
return 0;
}
这是代码 编译就显示:error C2065: 'printf' : undeclared identifier和
error C2065: 'getchar' : undeclared identifier 错误 求帮忙

需要包含头文件stdio.h
在文件的最上面加上
#include <stdio.h>即可
因为printf和getchar这两个函数都是在stdio.h头文件中定义的,不包含这个头文件的话,
就不能使用这两个函数,编译无法通过。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-29
加上头文件#include <stdio.h>
第2个回答  2011-12-29
需要相应头文件
#include <stdio.h>
#include <conio.h>追问

加了 没用

追答

你的编译器是VC吧?
我没Mil.h这个东西,没法编译测试。

printf是stdio.h的库函数,一般加了这个头文件就可以的。

你试下把printf和getch的语句注释掉,看编译能不能过去。怀疑是其他问题的堆积。

追问

注释掉是可以编译的

追答

那你再写个简单测试程序,就是要#include int main(){printf("hello");} 看能不能编译通过。

本回答被网友采纳
第3个回答  2011-12-29
试过加#include <stdlib.h>和<stdio.h>吗?
相似回答