Форум программистов, компьютерный форум, киберфорум C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/88: Рейтинг темы: голосов - 88, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 16

Ошибка в программе `write' undeclared (first use this function)

11.10.2013, 13:35. Показов 16726. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Совсем недавно начал осваивать 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

Код прилагается

C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#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;
};
 Комментарий модератора 
Данный раздел форума посвящён языку C, а не C++
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.10.2013, 13:35
Ответы с готовыми решениями:

Ошибка `iIndex' undeclared (first use this function)
#include&lt;stdio.h&gt; double SecondMax (double A, int n) { double max; int i ; for...

Ошибка компиляции `delay' undeclared (first use this function)
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &quot;dos.h&quot; int main() { char msg = (&quot;\п\гПриветствую великого...

Ошибка error: unable to write sha1 filename '...' function not implemented
Ребят, Всем привет. Подскажите пожалуйста, в чем может быть проблема? Ошибка возникает при git push

16
27 / 27 / 9
Регистрация: 31.01.2013
Сообщений: 89
11.10.2013, 13:57
добавь #include <io.h>
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 16
11.10.2013, 14:34  [ТС]
Цитата Сообщение от agronom81 Посмотреть сообщение
добавь #include <io.h>
Спасибо.Скомпилировался файл.
Появился exe в папке,запускаю его-вылезает окно в котором написано - Для продолжения нажмите любую клавишу. Нажимаю и окно закрывается просто. В чем может быть проблема?
0
27 / 27 / 9
Регистрация: 31.01.2013
Сообщений: 89
11.10.2013, 14:54
У тебя main пустой.
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 16
11.10.2013, 16:33  [ТС]
Цитата Сообщение от agronom81 Посмотреть сообщение
У тебя main пустой.
Это в программе? Или про файл main.cpp?
Вроде он открывается и там не пустой файл вроде (прикрепил,что открывается)
Вложения
Тип файла: doc программа.doc (95.5 Кб, 7 просмотров)
0
27 / 27 / 9
Регистрация: 31.01.2013
Сообщений: 89
11.10.2013, 16:37
здесь
C Скопировано
1
2
3
4
5
int main(int argc, char *argv[])
{
    system("PAUSE");
    return EXIT_SUCCESS;
}
Как я понимаю здесь хотя бы одна функция и пару переменных должны быть.
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 16
11.10.2013, 18:08  [ТС]
Этот текст стандартный вроде который появляется после Создать-Проект-Console Application
0
202 / 200 / 65
Регистрация: 06.10.2013
Сообщений: 552
11.10.2013, 19:09
Это стандартный минимум. Он в Винде ждет нажатия кнопки и завершает программу. Более ничего не делает. Перед system("PAUSE"); вставляйте свой код, тогда будет работать.
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 16
12.10.2013, 19:04  [ТС]
Цитата Сообщение от XZentus Посмотреть сообщение
Это стандартный минимум. Он в Винде ждет нажатия кнопки и завершает программу. Более ничего не делает. Перед system("PAUSE"); вставляйте свой код, тогда будет работать.
Запутался совсем... Свой код-это какая-то часть программы,что у меня дальше идет?Или что-то другое прописывать?
0
27 / 27 / 9
Регистрация: 31.01.2013
Сообщений: 89
12.10.2013, 20:10
Пример
C Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
#include <string.h>
 
void fun (char a[], char cc, int len);
 
 
  
int main()
{
    char a[80], cc;
    int len;
    printf("Text: ");
    gets(a);
    len = strlen(a);
    printf("len = %d\n", len);
    printf("Symbol: ");
    scanf("%c", &cc);
    fun(a, cc, len);
    return 0;
 
}
 
void fun (char a[], char cc, int len)
{
    int i, j;
    i = j = 0;
    while(i < len)
    {
        if(a[i] == ' ')
        {
            j = i+1;
            i++;
        }
        else if(a[i] == cc)
        {
            for(; a[j] != ' ' && j < len; j++)
                printf("%c", a[j]);
            printf("\n");
            i = j;
        }
        else
            i++;
    }
}
1
202 / 200 / 65
Регистрация: 06.10.2013
Сообщений: 552
12.10.2013, 20:11
Точка входа в программу - функция main() - с нее начинается выполнение вашей программы. Сейчас у вас там всего лишь 2 инструкции - ожидания, пока пользователь ткнет что-нибудь и выход и программы ( system("PAUSE");
return EXIT_SUCCESS. Чтобы ваш код начал работать, надо добавить соответствующий вызов функции в main().
1
27 / 27 / 9
Регистрация: 31.01.2013
Сообщений: 89
12.10.2013, 20:11
в части int main() указаны параметры и вызывается функция fun, которая описана внизу.
0
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 16
13.10.2013, 13:47  [ТС]
У меня должен получиться определенный рисунок
Как я понял из вышесказанного мне надо
после строки
C++ Скопировано
1
int main(int argc, char *argv[])
и до строки
C++ Скопировано
1
system("PAUSE");
описать функцию (примерно это выглядеть должно как в примере)

В итоге сейчас попытался это сделать и у меня компилятор выдал кучу ошибок в каждой новой строчке

C++ Скопировано
1
2
3
char *argv[];
int argc;
write(out, &head.p, 1024);
0
27 / 27 / 9
Регистрация: 31.01.2013
Сообщений: 89
13.10.2013, 16:35
argv и argc задаются при запуске программы из командной строки, и они передают какие-то данные программе, но можно и без них.
Судя по программе ты должен объявить какие-то переменные x и y.
Потом вызвать функцию int CreateBMP_Header (не знаю почему она int, она не возвращает никакого значения), передать в неё одну структуру и переменные.
Затем вызвать int WriteBMP_header (FILE *out, bmHeader &head) (тоже не понятно почему int). Судя по объявлению в неё передается указатель на файл, в который будет выводится результат программы, значит ещё до main нужно написать FILE *out, а потом в самом main создать это файл и открыть его для записи, а уже потом вызвать на выполнение WriteBMP. И не забудь закрыть *out.
Ну как-то так я понимаю.
1
0 / 0 / 0
Регистрация: 22.06.2016
Сообщений: 7
13.10.2013, 19:35
Люди,помогите мне пожалуйста!
Не знаю где ошибки в программе.
Скажите мне,что это значит(что за ошибки)(фаил ниже)
Миниатюры
Ошибка в программе `write' undeclared (first use this function)  
0
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 16
06.12.2013, 22:48  [ТС]
И снова здравствуйте. Надо получить bmp-файл из матрицы.
Нашел программу одну,но компилятор выдал ошибку.

C:\Program Files\Microsoft Visual Studio\MyProjects\project\bmp.cpp(102) : error C2065: 'puts' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\project\bmp.cpp(106) : error C2065: 'getchar' : undeclared identifier

Я так понимаю,что компилятор ругается на то,что не описаны эти операторы. Помогите исправить пожалуйста. Может есть более простые решения


C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <windows.h>
#include <tchar.h>
#define  DIB_RGB(r, g, b) \
((DWORD)((r & 0xFF) << 16) | ((g & 0xFF) << 8) | (b & 0xFF)) 
 
void fill_rect(__int32*, int, int, int, int, int, DWORD);
 
 
 
 
 
// 24/32 бит
BOOL  SaveArrFile(const TCHAR* filename, const __int32* arr, 
                         int width, int height, int bpp = 24){
 
    if((bpp < 24) || (bpp > 32)) // только 24/32 бит
         return FALSE;
 
    DWORD p_row = (DWORD)((width * bpp + 31) & ~31) / 8uL;
    DWORD size  = (DWORD)(height * p_row);
 
    // формируем файловый заголовок
    BITMAPFILEHEADER  hdr;
    ZeroMemory(&hdr, sizeof(BITMAPFILEHEADER));
    hdr.bfType    = 0x4D42;
    hdr.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
    hdr.bfSize    = hdr.bfOffBits + size;
 
    // заголовок описателя растра
    BITMAPINFO dib;
    ZeroMemory(&dib, sizeof(BITMAPINFO));
    dib.bmiHeader.biSize        = sizeof(BITMAPINFOHEADER);
    dib.bmiHeader.biBitCount  = bpp;
    dib.bmiHeader.biCompression  = BI_RGB;
    dib.bmiHeader.biPlanes  = 1u;
    dib.bmiHeader.biWidth   = (long)width;
    dib.bmiHeader.biHeight  = (long)-height;
    dib.bmiHeader.biSizeImage   = size;
    dib.bmiHeader.biXPelsPerMeter = 11811L;
    dib.bmiHeader.biYPelsPerMeter = 11811L;
    dib.bmiHeader.biClrImportant  = 0uL;
    dib.bmiHeader.biClrUsed  = 0uL;
 
    // далее запись в файл
    HANDLE fp = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, 
                                   CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if(fp == INVALID_HANDLE_VALUE)
           return FALSE;
 
    // записываем заголовки...
    DWORD  dwr = 0uL;
    WriteFile(fp, (LPCVOID)&hdr, sizeof(BITMAPFILEHEADER), &dwr, NULL);
    WriteFile(fp, (LPCVOID)&dib.bmiHeader, sizeof(BITMAPINFOHEADER), &dwr, NULL);
 
    // запись массива пикселей
    if(bpp == 32) // 32-бит
           WriteFile(fp, (LPCVOID)arr, size, &dwr, NULL);
    else if(bpp == 24) { // 24-бит с дополнением до 32-разрядной границы
 
          BYTE   nil = 0u;
          int   cb  = sizeof(RGBQUAD);
          int  align = ((cb - ((width*bpp + 7) / 8) % cb) % cb);
        
          for(int y = 0; y < height; y++) {
               for(int x = 0; x < width; x++) 
                    WriteFile(fp, (LPCVOID)&arr[y*width+x], sizeof(RGBTRIPLE), &dwr, NULL);
            
                    for(int i = 0; i < align; i++) // до границы DWORD
                          WriteFile(fp, (LPCVOID)&nil, sizeof(BYTE), &dwr, NULL);
               }
   }
 
   FlushFileBuffers(fp);
   CloseHandle(fp);
   return TRUE;
}
 
 
 
 
 
int  main(void) {
    //массив пикселей
    __int32 arr[111*222] = {0};
    int cw = 222; 
    int ch = 111;
 
    // нарисуем что-нибудь
    DWORD rgb;
    int   sx  = ch / 5;
    int   sy  = cw / 10;
    for(int y = 0; y < 5; y++) {
         for(int x = 0; x < 10; x++) {
              rgb = DIB_RGB(rand()%2*0xFF, rand()%2*0xFF, rand()%2*0xFF);
              fill_rect(arr, cw, x*sx, y*sy, sx, sy, rgb);
        }
    }
 
 
    // сохраняем в файл
    if(SaveArrFile(_T("grid.bmp"), arr, cw, ch, 24))
           _putts(_T("Good save file."));
    else
           _putts(_T("Error save file !"));
 
    _gettchar();
    return 0;
}
 
 
 
// вывод прямоугольника
void fill_rect(__int32* arr, int width, int x, int y, int cx, int cy, DWORD color){
     for(int r = y; r <= (y + cy); r++) {
          for(int c = x; c <= (x + cx); c++)
               arr[r*width + c] = color;
     }
}
0
202 / 200 / 65
Регистрация: 06.10.2013
Сообщений: 552
10.12.2013, 21:34
заголовочный файл stdio.h нужен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2013, 21:34
Помогаю со студенческими работами здесь

Просит сперва использовать функции r1,r2,r3,r4. " undeclared (first use this function)' - вот так выглядит ошибка
#include &lt;iostream.h&gt; #include &lt;math.h&gt; void proc(int n,int m,int k,float &amp; rez) { float chislitel=(n*n+m*n+k); float...

Ошибка: no matching function for call to 'QStringList::join()' file.write(lines.join();
почему возникает эта ошибка? у меня в qt creator-е автодополнение показывает что есть такой метод возвращающий QByteArray код такой ...

Ошибка "'e' undeclared (first use in this function)"
Написал программу на СИ но выдает ошибку 'e' undeclared (first use in this function) в 30 строке и я ни как не могу понять почему,...

Undeclared (first use this function)
Помогите разобраться в чём тут дело. Код: #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #include...

' a ' и ' b ' undeclared (first use this function)
Помогите разобраться в чём тут дело. Заранее спасибо. Код: #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Сложность Колмогорова: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
PostgreSQL в Kubernetes: Подготовка кластера и настройка
Mr. Docker 20.03.2025
Когда доходит до контейнеризации баз данных и особенно таких требовательных к ресурсам системах как PostgreSQL, многие команды до сих пор колеблются, прежде чем перенести их в контейнерную. . .
C++26: Индексирование пакетов и метапрограммиро­вание
bytestream 20.03.2025
Эволюция C++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
Состояние гонки в C#: подводные камни многопоточного программировани­я
UnmanagedCoder 20.03.2025
Что такое состояние гонки? Это ситуация, когда результат программы непредсказуемо меняется в зависимости от порядка выполнения потоков. Проще говоря, два или более потока пытаются одновременно. . .
Next.js для разработки React: преимущества серверного рендеринга
Reangularity 20.03.2025
Next. js решает классическую проблему React-приложений: медленную первоначальную загрузку и плохую индексацию поисковиками. Вместо того чтобы заставлять браузер пользователя выполнять всю работу по. . .
JUnit или TestNG: Выбираем Java-фреймворк для тестирования
Javaican 20.03.2025
История тестовых фреймворков в Java началась в конце 90-х, когда Кент Бек и Эрих Гамма разработали JUnit - инструмент, который перевернул представление разработчиков о модульном тестировании. JUnit. . .
Разбиваем монолит на два микросервиса и реализуем CI/CD
ArchitectMsa 20.03.2025
Когда команда растет, а функциональность монолита расширяется, поддерживать и развивать такую систему становится все труднее. Разработчики начинают тратить много времени на разбор сложных. . .
Python и PDF: Создание и редактирование файлов
py-thonny 20.03.2025
Работа с PDF-документами – одна из популярных задач в современной разработке. Python предлагает несколько инструментов для создания, чтения и редактирования PDF-файлов, среди которых особенно. . .
Корутины в Unity и производительно­сть WaitForSeconds
GameUnited 20.03.2025
Разработчики игр на Unity часто сталкиваются с вопросом: как выполнять действия через определённые промежутки времени, не блокируя основной поток игры? Тут как раз и приходят на помощь корутины —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер