Форум программистов, компьютерный форум CyberForum.ru

Как изменить код, чтобы не было ошибки "expected initializer before void" - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.93
BalexD
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 16
28.12.2013, 21:41     Как изменить код, чтобы не было ошибки "expected initializer before void" #1
В общем, компилятор почему-то ругается на 3 строку, говоря "expected initializer before void" Что ему тут не нравится -- ума не приложу. Все функции есть в хидере, ругаться стал недавно -- ранее работал на ура. Перестраивала, перезапускала блокс(на всяк пожарный), а толку нет. Вот сам код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "HW_C.h"
 
void less_1()
{
    bool flag=true;
    int temp;
    system("clear");
    while(flag)
    {
        printf("\nВыберите задание:\n\t1 Среднее арифметическое двух чисел\n\t2 Перевод гривны в валюту\n\t3 Вывод текста\n\t4 Квадрат числа\n\t5 Сумма и произведение трёх\n\t6 Назад\n");
        scanf("%d", &temp);
        system("clear");
        switch(temp)
        {
            case 1: printf("Среднее арифметическое: %.3lf\n",arithmetic_average()); break;
            case 2: exchange();break;
            case 3: text();break;
            case 4: printf("%d\n", sqr()); break;
            case 5: summ_and_product_of_3();break;
            case 6: flag=false; break;
        }
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5955 / 5560 / 1788
Регистрация: 18.12.2011
Сообщений: 14,209
Завершенные тесты: 1
28.12.2013, 21:48     Как изменить код, чтобы не было ошибки "expected initializer before void" #2
Что-то не так в HW_C.h
Что там написано?
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,898
Завершенные тесты: 1
28.12.2013, 21:48     Как изменить код, чтобы не было ошибки "expected initializer before void" #3
Логично предположить, что ошибка в файле HW_C.h. Например, отсутствие точки с запятой после определения структуры.
azoller
17 / 17 / 1
Регистрация: 03.05.2013
Сообщений: 114
28.12.2013, 21:50     Как изменить код, чтобы не было ошибки "expected initializer before void" #4
Что-то в заголовочном файле не так. Покажите нам его, пожалуйста.
BalexD
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 16
28.12.2013, 22:07  [ТС]     Как изменить код, чтобы не было ошибки "expected initializer before void" #5
Вот та самая часть хидера:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <iomanip>
 
using namespace std;
 
 
void less_1();
void exchange();
void text();
int sqr();
void summ_and_product_of_3();
double arithmetic_average();
 
void less_2();
bool even_or_odd();
void summ_and_amount();
zss
Модератор
Эксперт С++
 Аватар для zss
5955 / 5560 / 1788
Регистрация: 18.12.2011
Сообщений: 14,209
Завершенные тесты: 1
29.12.2013, 11:03     Как изменить код, чтобы не было ошибки "expected initializer before void" #6
У меня это все компилируется.
Возможно перепутали несколько одинаковых HW_C.h
В строчке
#include "HW_C.h"
щелкните правой кнопкой мыши по HW_C.h и выберите
Open HW_C.h (Открытие документа HW_C.h).
BalexD
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 16
03.01.2014, 02:07  [ТС]     Как изменить код, чтобы не было ошибки "expected initializer before void" #7
Проблема в том, что HW_C.h -- один-единственный. И других просто нету. Уж не знаю, на что грешить(
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.01.2014, 02:14     Как изменить код, чтобы не было ошибки "expected initializer before void" #8
Весь проект выкладывайте.
BalexD
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 16
08.01.2014, 20:02  [ТС]     Как изменить код, чтобы не было ошибки "expected initializer before void" #9
Ну, кидаю в виде ссылки. Чтоб никто не терялся: сама функция используется в HW_Dop1.cpp, а в хидере прописана в самом конце.
Вложения
Тип файла: 7z HW_C_main.7z (40.1 Кб, 4 просмотров)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.01.2014, 04:58     Как изменить код, чтобы не было ошибки "expected initializer before void" #10
Вот результат компиляции этого проекта в Code::Blocks 12.11:
obj\Debug\HW_Dop1.o||In function `Z13insert_4_numbv':|
C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|multiple definition of `insert_4_numb()'|
obj\Debug\HW_Dop.o:C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|first defined here|
obj\Debug\HW_Dop2.o||In function `Z13insert_4_numbv':|
C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|multiple definition of `insert_4_numb()'|
obj\Debug\HW_Dop.o:C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|first defined here|
obj\Debug\HW_Dop3.o||In function `Z13insert_4_numbv':|
C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|multiple definition of `insert_4_numb()'|
obj\Debug\HW_Dop.o:C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|first defined here|
obj\Debug\HW_Dop4.o||In function `Z13insert_4_numbv':|
C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|multiple definition of `insert_4_numb()'|
obj\Debug\HW_Dop.o:C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|first defined here|
obj\Debug\Less_1.o||In function `Z13insert_4_numbv':|
C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|multiple definition of `insert_4_numb()'|
obj\Debug\HW_Dop.o:C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|first defined here|
obj\Debug\Less_2.o||In function `Z13insert_4_numbv':|
C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|multiple definition of `insert_4_numb()'|
obj\Debug\HW_Dop.o:C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|first defined here|
obj\Debug\Less_3.o||In function `Z13insert_4_numbv':|
C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|multiple definition of `insert_4_numb()'|
obj\Debug\HW_Dop.o:C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|first defined here|
obj\Debug\Less_4.o||In function `Z13insert_4_numbv':|
C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|multiple definition of `insert_4_numb()'|
obj\Debug\HW_Dop.o:C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|first defined here|
obj\Debug\Less_5.o||In function `Z13insert_4_numbv':|
C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|multiple definition of `insert_4_numb()'|
obj\Debug\HW_Dop.o:C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|first defined here|
obj\Debug\Less_6.o||In function `Z13insert_4_numbv':|
C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|multiple definition of `insert_4_numb()'|
obj\Debug\HW_Dop.o:C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|first defined here|
obj\Debug\main.o||In function `Z13insert_4_numbv':|
C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|multiple definition of `insert_4_numb()'|
obj\Debug\HW_Dop.o:C:\Documents and Settings\Administrator\Desktop\HW_C_main\HW_C_main\HW_C.h|73|first defined here|
||=== Build finished: 22 errors, 0 warnings (0 minutes, 4 seconds) ===|
И при чём здесь тогда:
Цитата Сообщение от BalexD Посмотреть сообщение
компилятор почему-то ругается на 3 строку, говоря "expected initializer before void"
???

Добавлено через 1 минуту
И кто вас научил делать реализацию функции (insert_4_numb()) в заголовочном файле?
Цитата Сообщение от BalexD Посмотреть сообщение
сама функция используется в HW_Dop1.cpp, а в хидере прописана в самом конце.
Вложения
Тип файла: rar HW_C_main.rar (319.3 Кб, 5 просмотров)
BalexD
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 16
10.01.2014, 00:02  [ТС]     Как изменить код, чтобы не было ошибки "expected initializer before void" #11
Хм.. Странно. У меня все выглядит немного по-другому.

А про заголовочный файл скажу, что никто мне не говорил, что так делать нельзя. По крайней мере, до этого момента ошибки не возникало. Что же, учтем и эти грабли.

Но спасибо за указания на промахи. Искренне всем благодарна)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2014, 00:07     Как изменить код, чтобы не было ошибки "expected initializer before void"
Еще ссылки по теме:

C++ LNK2019: ссылка на неразрешенный внешний символ "void __cdecl run(void)" (?run@@YAXXZ) в функции _wmain
Error C2440: =: невозможно преобразовать "void *" в "Node *" C++
C++ Qt ошибки "qualified-id declaration before '(' token" и "expected '}' at end of input"

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.01.2014, 00:07     Как изменить код, чтобы не было ошибки "expected initializer before void" #12
Цитата Сообщение от BalexD Посмотреть сообщение
Хм.. Странно. У меня все выглядит немного по-другому.
Интересно было бы посмотреть.
Yandex
Объявления
10.01.2014, 00:07     Как изменить код, чтобы не было ошибки "expected initializer before void"
Ответ Создать тему
Опции темы

Текущее время: 05:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru