Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
 Аватар для Adam-RS
1 / 1 / 0
Регистрация: 02.10.2010
Сообщений: 28

Не работает NULL в Visual C++!!

29.05.2011, 09:49. Показов 5212. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста))
В Билдере прога работает без ошибок, а вот в ViSUAL C++ ругается на NULL.
Пробовал дефайном объявит как константу.
Фотка внизу.

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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
#include "stdafx.h"
#include "iostream"
#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "time.h"
#define NULL 0
 
using namespace std;
 
struct stadioni
{
    char imya[15];
    short int st; 
    int vmestimost;
    short int st1; 
    char st2[10][15] ;
};
 
stadioni s [100] ;
int Count,strok;
 
void sohranenie (void);
void alfa (void); 
void printhead (void);
void print (int i);
void printall (void);
void add (void);
void edit (void);
void poisk (void);
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    FILE* f;
        char c;
        Count = 0;
 
    system ("cls");
    if ( (f = fopen ("C: \\Kursovaya\\LP\\db. kp","rb")) == NULL)
    {
        printf ("Fail ne sushestvuet!\n");
        fclose (f);
        printf ("Vi hotite prodolzhit? (Y\\N) \n");
        c = cin.get();
        if ( (c =='n') || (c =='N')) return 1;
    }
    else
    {
        fread (&s, sizeof (s), 1, f);
        for (int i = 0; s[i].st != 0; i++)
            Count = i + 1;
        alfa ();
    }
    fclose (f);
    while (1) 
    {
        system ("cls");
        printf ("Menu: \n");
        printf ("1. Dobavit zapis\n");
        printf ("2. Izmenit zapis\n");
        printf ("3. Pokazat vse stadioni\n");
        printf ("4. Poisk stadionov po vidam sporta\n");
        printf ("5. Exit\n");
        printf ("Nazhmite knopku: ");
        c = cin.get();
        switch (c) 
        {
        case '1': add (); break;
        case '2': edit (); break;
        case '3': printall (); getch (); break;
        case '4': poisk (); break;
        case '5': printf ("\nVi hotite viyti? (Y\\N) \n");
 
            c = cin.get ();
            if ( (c =='y') || (c=='Y'))
            {
                sohranenie ();
                return 1;
            }
        }
    }
        return 0;
}
 
void sohranenie (void) 
{
    FILE *f;
    stadioni s[100];
 
    if (f == fopen ("C: \\Kursovaya\\LP\\db. kp","rb") == NULL) 
    {
        printf ("Fail ne sozdan!");
        getch();
        return;
    }
 
    fwrite (&s, sizeof (s), 1, f);
    fclose (f);
}
 
void alfa (void)
{
    stadioni temp;
 
    for (int i = 0; i < Count - 1; i++)
        for (int j = i + 1; j < Count; j++)
            if ( (strcmp (strupr (s[j].imya), strupr (s [i].imya)) <0) || (strcmp (s [i].imya,"") == 0))
            {
                temp = s[j] ;
                s[j] = s[i] ;
                s[i] = temp;
            }
            return;
}
 
void printhead (void) 
{
    printf ("-----------------------------------------------------------------------------\n");
    printf ("|   | Imya           | God         | Mesta   | Vidi  | Vid sporta     |\n");
    printf ("-----------------------------------------------------------------------------\n");
    return;
}
 
void print (int i) 
{
    char pr = ' ';
 
    printf ("|%2d |", i+1); 
    strok++;
    printf ("%15s |", s[i].imya);
    printf ("%12d |", s[i].st);
    printf ("%8d |", s[i].vmestimost);
    printf ("%6d |", s[i].st1);
 
    for (int j = 0; j < s[i].st1; j++) 
    {
        if (j == 0) 
            printf ("%15s |\n", s[i].st2[j]);
        else
            if (strok != 44)
        {
            printf ("|%2c |%15c |%12c |%8c |%6c |%15s |\n", pr, pr, pr, pr, pr, s[i]. st2[j]);
            strok++;
        }
        else
        {
            printf ("Nazhmite lubuyu klavishu dlya prodolzheniya"); 
            getch ();
            system("cls"); 
            strok = 0;
        }
    }
    printf ("-----------------------------------------------------------------------------\n");
    strok++;
    return;
}
 
void printall (void)
{
 
        strok = 3;
 
    system ("cls");
    printhead ();
 
    for (int i = 0; i < Count; i++)
        print (i);
 
    printf ("\n");
    return;
}
 
void add (void)
{
        tm *T; time_t tt; tt = time (NULL); T = localtime (&tt);
    Count++;
    system ("cls");
    printf ("\t\t\t\tDobavleniye zapisi\n\n");
    printf ("Vvedite imya stadiona (ne bolee 15 simvolov): ");
    scanf ("%s", s[Count - 1].imya);
    strupr (s[Count - 1].imya);
    
    do 
    {
        printf ("VVedite datu stroitelstva: ");
        scanf ("%d", &s[Count - 1].st);
    }
    while ( (s[Count - 1].st < 1) || (s[Count - 1].st > (T -> tm_year + 1900)));
    do 
    {
        printf ("Vvedite vmestimost stadiona: ");
        scanf ("%d", &s[Count - 1].vmestimost);
    }
    while (s[Count-1].vmestimost < 1);
    do 
    {
        printf ("Vvedite kol-vo platform (ne bolee 10): ");
        scanf ("%d", &s[Count - 1].st1);
    } 
    while (s[Count - 1].st1 < 1 || s[Count - 1].st1 > 10);
    for (int i = 0; i < s[Count - 1].st1; i++)
    {
        printf ("Vvedite vid sporta%d (ne bolee 15 simvolov): ", i+1);
        scanf ("%s", s[Count - 1].st2[i]);
        strupr (s[Count - 1].st2[i]);
    }
    alfa ();
    printf ("Novaya zapis dobavlena!\n"); getch ();
    return;
}
 
void edit (void)
{
    int num = 0, i;
    stadioni temp;
 
    tm *T; time_t tt; tt=time (NULL); T=localtime (&tt);
    system("cls");
    printf ("\t\t\tRadactirovanie zapisi\n");
    printall ();
 
    while (num < 1 || num > Count)
    {
        printf ("Vvedite nomer zapisi dlya redaktirovaniya: ");
        scanf ("%d", &num);
    }
    system("cls");
    printf ("Vi vibrali zapis: \n");
    printhead ();
    print (num-1);
    printf ("Vvedite novoe imya stadiona (ne bolee 15 simvolov): ");
    scanf ("%s", temp.imya);
    strupr (temp.imya);
    do 
    {
        printf ("Vvedite novuyu datu stroitelstva: ");
        scanf ("%d", &temp.st);
    } 
    while ( (temp.st < 1) || (temp.st > (T -> tm_year + 1900)));
    do 
    {
        printf ("Vvedite novuyu vmestimost stadiona: ");
        scanf ("%d", &temp.vmestimost);
    }
    while (temp.vmestimost < 1);
    do 
    {
        printf ("Vvedite novoe kol-vo platform (ne bolee 10): ");
        scanf ("%d", &temp.st1);
    } 
    while (temp.st1 < 1 || temp.st1 > 10);
    for (i = 0; i < temp.st1; i++)
    {
        printf ("Vvedite noviyi vid sporta %d (ne bolee 15 simvolov): ", i+1);
        scanf ("%s", temp.st2[i]);
        strupr (temp.st2[i]);
    }
    printf ("Vi hotite izmenit zapis? (Y\\N) \n");
    if ( (cin.get() =='y') || (cin.get() =='Y')) 
    {
        strcpy (s[num - 1].imya, temp.imya);
        s[num - 1].st = temp.st;
        s[num - 1].vmestimost = temp.vmestimost;
        s[num - 1].st1 = temp.st1;
        for (i = 0; i < temp.st1; i++)
            strcpy (s[num - 1].st2[i], temp.st2[i]);
        alfa ();
        printf ("Zapis izmenena\n");
        getch ();
    }
    return;
}
 
void poisk () 
{ 
    char sport [15] ; int i,j;
 
        system ("cls");
    printf ("\t\t\tVivod vidov sporta\n");
    printf ("Vvedite vid sporta (ne bolee 15 simvolov): ");
    scanf ("%s",sport);
    printhead ();
    for (i = 0; i < Count; i++)
        for (j = 0; j < s[i].st1; j++)
            if (strcmp (strupr (s[i].st2[j]), strupr (sport)) == 0) print (i);
    getch ();
    return;
}
Миниатюры
Не работает NULL в Visual C++!!  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2011, 09:49
Ответы с готовыми решениями:

Не работает код: m_web1.Navigate ('gidro.htm',0,0,NULL,NULL);
Друзья помогите начинаюшему значит делаю m_web1.Navigate ('с:\gidro.htm',0,0,NULL,NULL);работает делаю m_web1.Navigate...

IEnumerable = null в Visual C++
Привет. Вопрос: как в Visual C++ проверить IEnumerable == NULL. Если написать так, то компилятор ругается, что невозможно...

Input value null работает в консоли, но не работает скриптом onclick
Всем привет. На кнопку повесил простой скрипт, чтобы все ячейки делать пустыми. Алертом и логом проверял, в скрипт заходит, но не...

14
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.05.2011, 10:17
Собрал в Dev-cpp, проблем не возникло, кроме стандартного несоответствия компиляторов.
Если, насколько я понимаю, ругается на 46 строку, то, быть может, возвращать не 1 а 0? Все равно программа завершится...

Не по теме:

Нашел небольшой косячок.

C++
1
2
3
4
5
6
7
8
case '5': printf ("\nVi hotite viyti? (Y\\N) \n");
 
                        c = cin.get ();
                        if ( (c =='y') || (c=='Y'))
                        {
                                sohranenie ();
                                return 1;
                        }
при вводе '5', мелькает фраза "Vi hotite viyti?" и все..

1
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
29.05.2011, 10:33
Не... Похоже, что ругается на if() с открытием файла. 40-я строка. Дык там пробел стоит в пути...
1
 Аватар для Adam-RS
1 / 1 / 0
Регистрация: 02.10.2010
Сообщений: 28
29.05.2011, 10:42  [ТС]
Ну, ладно, оставлю на билдере. Но все равно спасибо))
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
29.05.2011, 10:47
Может ругается на fclose(f) в этом куске кода:
C++
1
2
3
4
5
6
7
8
 if ( (f = fopen ("C: \\Kursovaya\\LP\\db. kp","rb")) == NULL)
        {
                printf ("Fail ne sushestvuet!\n");
                fclose (f);
                printf ("Vi hotite prodolzhit? (Y\\N) \n");
                c = cin.get();
                if ( (c =='n') || (c =='N')) return 1;
        }
словами: если файл не отрыт (f=NULL), то пытаемся его закрыть. И это похоже не ошибка, а скорее отладочная информация, в скрине написанно, что проблема в файле fclose.c.
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
29.05.2011, 13:35
Цитата Сообщение от Kastaneda Посмотреть сообщение
И это похоже не ошибка, а скорее отладочная информация, в скрине написанно, что проблема в файле fclose.c.
именно
там срабатывает ассерт
assert( stream != NULL );
stream - какойто внутренний идентификатор потока, он == NULL (поток не открыт), поэтому выскакивает окно
0
 Аватар для Mиxaил
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
29.05.2011, 14:05
if ( (f = fopen ("C: \\Kursovaya\\LP\\db. kp","rb")) == NULL)

C++
1
2
3
4
5
6
7
std::ifstream f ("C:\Kursovaya\LP\db.kp", std::ifstream::in);
if ( !f )
    std::cerr << "File is not found..." << std::endl;
else
{
    //что - то там
}
Добавлено через 2 минуты
и вместо "NULL" (стандарт Си) можно писать просто "0" (Си++)
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
29.05.2011, 14:41
Только обратные косые все же надо писать дважды. Это прямые косые можно писать 1 раз.
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
29.05.2011, 14:43
Цитата Сообщение от Mиxaил Посмотреть сообщение
и вместо "NULL" (стандарт Си) можно писать просто "0" (Си++)
Если я не ошибаюсь, то нужно. Об этом где-то в начале книги страуструпа было...
0
 Аватар для Mиxaил
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
29.05.2011, 18:02
ValeryLaptev, нужно писать один раз "\"... Во всех IDE, в которых я работал, это нормально проходит
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
29.05.2011, 18:16
Mиxaил, вы ошибаетесь и это связано не с ide, а с языком
0
29.05.2011, 18:28

Не по теме:

alex_x_x, ну если я пишу в Visual Studio 2010 и CodeBlocks одну "\", и никакая из этих сред на это не ругается, то что тут можно говорить.
P.S. пишу на C++

0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
29.05.2011, 18:38
что хотите сказать даже файлы вида "с:\test\alert.wav" нормально откроет?))
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
29.05.2011, 18:54
2Mиxaил
Цитата Сообщение от alex_x_x Посмотреть сообщение
что хотите сказать даже файлы вида "с:\test\alert.wav" нормально откроет?))
Аналогичный пример "c:\test\new". Если есть сомнения, оформляем строку в тег и смотрим на подсветку:

C++
1
"c:\test\new"
Именно так (как подсвечено) компилятор воспримет эту строку. Поэтому "\\" - обязательно:

C++
1
"c:\\test\\new"
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
29.05.2011, 21:38
Цитата Сообщение от Mиxaил Посмотреть сообщение
ValeryLaptev, нужно писать один раз "\"... Во всех IDE, в которых я работал, это нормально проходит
Ну и что, что проходит...
Обратная косая - это СПЕЦИАЛЬНЫЙ символ в С++. По стандарту.
Такой же как '\n', '\b' - см. escape-последовательности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2011, 21:38
Помогаю со студенческими работами здесь

Не работает NOT NULL
set sql_mode='STRICT_ALL_TABLES'; - задаю режим Создаю таблицу через PhpMyAdmin create table Category (id int UNSIGNED PRIMARY...

Не работает Visual Studio Net 2003 с Visual Source Safe 6.0
Проблема! Был VSS от Visual Studio 6.0. Потом 1 год разрабатывал по Visual Studio .Net с тем же Source Safe - проблем не было. Снес Visial...

Блин, для ЧЕГО НУЖНА Функция CREATE TABLE invoice( inv_id INT AUTO_INCREMENT NOT NULL , usr_id INT NOT NULL , prod_id INT NOT NULL , quantity INT NOT
Погуглив, так и не смог толком понять. Есть тут ГУРУ по mysql Которые могут на пальцах или на примере показать для чего она нужна. ...

Устройство Null работает неправильно
Здравствуйте. У меня проблема недавно проверял комп на ошибки выбило -Устройсво Null работает неправильно .чтоэто задрайвер подскажите я...

Не работает responseXML - всегда возвращает null
JS файл вот: var msg, rawData, req; function demoXMLRPC() { msg = new XMLRPCMessage(&quot;simpleServer.sayHello&quot;,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru