Ошибка в программе `write' undeclared (first use this function) - C (СИ)
Формулировка задачи:
Совсем недавно начал осваивать C++. Написал программу,но компилятор выдает ошибку
83 D:\Dev-Cpp\main.cpp `write' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
Подскажите пожалуйста как исправить эту ошибку. Пользуюсь средой dev-C++ 4.9.9.2
Код прилагается
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
system("PAUSE");
return EXIT_SUCCESS;
}
#define u unsigned
struct BitMapFileHeader {
unsigned __int16 Typf; // тип файла
unsigned __int32 Size; // размер файла
unsigned __int16 Res1; // зарезервировано
unsigned __int16 Res2; // зарезервировано
unsigned __int32 OfBm; // смещение изображения в байтах (1078)
};
struct bmInfoHeader { // информационный заголовок
unsigned __int32 Size; // длина заголовка в байтах (40)
unsigned __int32 Widt; // ширина изображения (в точках)
unsigned __int32 Heig; // высота изображения (в точках)
unsigned __int16 Plan; // число плоскостей (1)
unsigned __int16 BitC; // глубина цвета (бит на точку) (8)
unsigned __int32 Comp; // тип компрессии (0 - нет)
unsigned __int32 SizI; // размер изображения в байтах
unsigned __int32 XppM; // горизонтальное разрешение точек на метр - обычно 0
unsigned __int32 YppM; // вертикальное разрешение точек на метр - обычно 0
unsigned __int32 NCoL; // число цветов, если максимально допустимое - 0
unsigned __int32 NCoI; // число основных цветов
};
struct bmHeader { // полный заголовок файла
BitMapFileHeader f; // заголовок файла
bmInfoHeader i; // информационный заголовок
u char p[256*4]; // таблица палитры
//int p[256];
};
int CreateBMP_Header (bmHeader &head, int x, int y);
int WriteBMP_header (FILE *out, bmHeader &head);
int CreateBMP_Header (bmHeader &head, int x, int y){
//BitMapFileHeader
head.f.Typf = (u __int16)(((__int8)'B')|((__int8)'M')<<8);
head.f.Size = (u __int32)(x*y+1078);
head.f.Res1 = 0;
head.f.Res2 = 0;
head.f.OfBm = 1078;
//bmInfoHeader
head.i.Size = 40;
head.i.Widt = x;
head.i.Heig = y;
head.i.Plan = 1;
head.i.BitC = 8;
head.i.Comp = 0;
head.i.SizI = x*y;
head.i.XppM = 11808;
head.i.YppM = 11808;
head.i.NCoL = 0;
head.i.NCoI = 0;
//формирование таблицы цветов
int j = 0;
for (int i= 0; i<1024; j++){
head.p[i++] = j;
head.p[i++] = j;
head.p[i++] = j;
head.p[i++] = 0;
}
return 0;
};
int WriteBMP_header (int out, bmHeader &head){
//BitMapFileHeader
//write(out, &head, sizeof(head));
write(out, &head.f.Typf, sizeof(head.f.Typf));
write(out, &head.f.Size, sizeof(head.f.Size));
write(out, &head.f.Res1, sizeof(head.f.Res1));
write(out, &head.f.Res2, sizeof(head.f.Res2));
write(out, &head.f.OfBm, sizeof(head.f.OfBm));
//bmInfoHeader
write(out, &head.i.Size, sizeof(head.i.Size));
write(out, &head.i.Widt, sizeof(head.i.Widt));
write(out, &head.i.Heig, sizeof(head.i.Heig));
write(out, &head.i.Plan, sizeof(head.i.Plan));
write(out, &head.i.BitC, sizeof(head.i.BitC));
write(out, &head.i.Comp, sizeof(head.i.Comp));
write(out, &head.i.SizI, sizeof(head.i.SizI));
write(out, &head.i.XppM, sizeof(head.i.XppM));
write(out, &head.i.YppM, sizeof(head.i.YppM));
write(out, &head.i.NCoL, sizeof(head.i.NCoL));
write(out, &head.i.NCoI, sizeof(head.i.NCoI));
write(out, &head.p, 1024);
return 0;
};Решение задачи: «Ошибка в программе `write' undeclared (first use this function)»
textual
Листинг программы
char *argv[]; int argc; write(out, &head.p, 1024);
Объяснение кода листинга программы
- Объявлен массив аргументов командной строки
argv[] - Задана переменная
argc, которая содержит количество аргументов командной строки - Вызвана функция
writeдля записи данных в файл или потокout - В качестве аргументов функции
writeуказаны адрес переменнойhead.pи размер 1024 байта