|
47 / 47 / 15 Регистрация: 09.03.2011 Сообщений: 584 |
|
|
1 |
|
|
09.03.2011, 18:49. Показов 3802. Ответов 3
ошибка: `main» должен вернуть `int» и т.д. перепробовал много вариантов у меня DEV C++ понятно что с тех пор как написали c++ для чайников и много другой литературы изменился стандарт вместо iostream.h iostream и т.д. подскажите чего делать,или название адекватной литературы или как с этим бороться.
__________________
0 |
|
ValeryS Модератор
8756 / 6546 / 887 Регистрация: 14.02.2011 Сообщений: 22,962 |
||||
|
09.03.2011, 18:56 |
2 |
|||
или я не понял вопроса?
0 |
|
1080 / 1006 / 106 Регистрация: 28.02.2010 Сообщений: 2,889 |
|
|
09.03.2011, 18:58 |
3 |
|
0 |
|
Valerko 19 / 19 / 2 Регистрация: 30.11.2010 Сообщений: 164 |
||||
|
09.03.2011, 22:04 |
4 |
|||
0 |
|
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
09.03.2011, 22:04 |
|
Помогаю со студенческими работами здесь Ошибка компилирования «error: ‘::main’ must return ‘int’» Ошибка при сборке многофайлового проекта: «невозможно преобразовать «int» в «const golf» Ошибка: «невозможно преобразовать аргумент 1 из «int [3][3]» в «int **»» Ошибка «error C2446: :: нет преобразования «int» в «char *» Когда нажимаю двойным кликом на… В зависимости от времени года «весна», «лето», «осень», «зима» определить погоду «тепло», «жарко», «холодно», «очень холодно»
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 4 |
This my main function:
void main(int argc, char **argv)
{
if (argc >= 4)
{
ProcessScheduler *processScheduler;
std::cout <<
"Running algorithm: " << argv[2] <<
"nWith a CSP of: " << argv[3] <<
"nFilename: " << argv[1] <<
std::endl << std::endl;
if (argc == 4)
{
processScheduler = new ProcessScheduler(
argv[2],
atoi(argv[3])
);
}
else
{
processScheduler = new ProcessScheduler(
argv[2],
atoi(argv[3]),
atoi(argv[4]),
atoi(argv[5])
);
}
processScheduler -> LoadFile(argv[1]);
processScheduler -> RunProcesses();
GanntChart ganntChart(*processScheduler);
ganntChart.DisplayChart();
ganntChart.DisplayTable();
ganntChart.DisplaySummary();
system("pause");
delete processScheduler;
}
else
{
PrintUsage();
}
}
The error I get when I compile is this:
Application.cpp:41:32: error: ‘::main’ must return ‘int’
It’s a void function how can I return int and how do I fix it?
Michael
3,0547 gold badges37 silver badges78 bronze badges
asked Nov 2, 2016 at 14:05
3
Try doing this:
int main(int argc, char **argv)
{
// Code goes here
return 0;
}
The return 0; returns a 0 to the operating system which means that the program executed successfully.
answered Nov 2, 2016 at 14:07
MichaelMichael
3,0547 gold badges37 silver badges78 bronze badges
5
C++ requires main() to be of type int.
![]()
answered Nov 2, 2016 at 14:18
Nick PaviniNick Pavini
2923 silver badges14 bronze badges
3
Function is declared as int main(..);, so change your void return value to int, and return 0 at the end of the main function.
answered Nov 2, 2016 at 14:14
renonszrenonsz
5611 gold badge4 silver badges17 bronze badges
![]()
>>‘::main’ must return ‘int’
тут компилятор в качестве К.О. указывает, что main() по стандарту должна возвращать int
- Показать ответ
- Ссылка
Ответ на:
комментарий
от alex_custov 05.09.10 00:04:16 MSD

Ответ на:
комментарий
от sudo-s 05.09.10 00:07:11 MSD
![]()
#include <iostream>
using namespace std;
int main ()
{
cout << «text»;
cin.get();
return 0;
}
- Показать ответ
- Ссылка
Ответ на:
комментарий
от Heretique 05.09.10 00:07:38 MSD

Ответ на:
комментарий
от sudo-s 05.09.10 00:11:04 MSD
![]()
![]()
return 0; не обязательно.
Booster ★★
(05.09.10 11:31:34 MSD)
- Ссылка
Ответ на:
комментарий
от sudo-s 05.09.10 00:07:11 MSD

Вы когда-нибудь поймёте, что вторую строчку лучше трогать)))
return 0; не обязательно.
Да, кстати, стандарт одобряэ ) Справедливо только для main.
- Ссылка

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
cout << "text";
cin.get();
return EXIT_SUCCESS;
}
unisky ★★
(05.09.10 12:53:40 MSD)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от unisky 05.09.10 12:53:40 MSD

Ответ на:
комментарий
от m4n71k0r 05.09.10 13:48:33 MSD

дооо…ещё cstdlib туда лепить)))))
более академично: влияет только на препроцессор, что при современных процессорах не имеет значения, ничего лишнего не линкуется же… и вдруг через полсотни лет, когда уже все забудут про цпп, кто-то задастся вопросом — почему именно 0
^_^
unisky ★★
(05.09.10 15:08:14 MSD)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от sudo-s 05.09.10 00:11:04 MSD

И тут я понял, чем не угодил kdevelop из соседнего топика.
Pavval ★★★★★
(05.09.10 16:58:56 MSD)
- Ссылка
Ответ на:
комментарий
от unisky 05.09.10 15:08:14 MSD

Ну лично я собираюсь через 50 лет программировать нанитов и манипулировать генами. … если конечно ресурсы планеты не закончатся и наша цивилизация не войдёт в тёмную эпоху деградации и развитого каннибализма )))
- Показать ответ
- Ссылка
Ответ на:
комментарий
от m4n71k0r 05.09.10 18:03:57 MSD

> Ну лично я собираюсь через 50 лет программировать нанитов и манипулировать генами. … если конечно ресурсы планеты не закончатся и наша цивилизация не войдёт в тёмную эпоху деградации и развитого каннибализма )))
на D++? =)
korvin_ ★★★★★
(05.09.10 18:46:27 MSD)
- Ссылка

Ответ на:
комментарий
от annulen 05.09.10 18:47:28 MSD

это g++ написанный на elisp, очевидно же!
- Ссылка
Ответ на:
комментарий
от annulen 05.09.10 18:47:28 MSD

G++ — сокращение от GNU C++. Пишем в Емаксе, сохранием в цпп, потом g++ /path/to/file/filename и получаем бинарник.
sudo-s ★
(06.09.10 03:44:46 MSD)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от sudo-s 06.09.10 03:44:46 MSD
![]()
и получаем бинарник.
А если мне кроскомпилировать нужно? g++ [path/to/file] уже не прокатит (даже в емаксе) 🙂
quasimoto ★★★★
(06.09.10 10:37:38 MSD)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от quasimoto 06.09.10 10:37:38 MSD

>g++ [path/to/file] уже не прокатит
o rly? заменяешь g++ на имя твоего кросс-компилятора, и все дела
annulen ★★★★★
(06.09.10 11:15:41 MSD)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от annulen 06.09.10 11:15:41 MSD
![]()
Ну я как-то привык в ключиках всё писать — в Makefile-ах.
quasimoto ★★★★
(06.09.10 11:17:59 MSD)
- Ссылка
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
- Forum
- Beginners
- ‘main’ must return ‘int’
‘main’ must return ‘int’
Hey there
Whenever I compile this (see below) with gcc on Cygwin it returns with:
test.cpp:25: error: ‘main’ must return ‘int’;
Here is the source code
|
|
The error message is trying to tell you that main must return int.
i.e. Line 21 should be int main() and at the end of your program you must return 0; // obviously only if the program executed successfully
return 0; is superfluous — main (and only main) returns 0 by default when the end of the function is reached.
For people who are new to programming who may not know that it is a good habbit to get into. Also, although somwhat a small amount, it makes the code more readable.
This can be confusing since some compilers allow void main() and you see examples that use it in books and on the web ALL the time (by people who should know better). By the official rules of C++ though, it is wrong.
Topic archived. No new replies allowed.
Это моя основная функция:
void main(int argc, char **argv)
{
if (argc >= 4)
{
ProcessScheduler *processScheduler;
std::cout <<
"Running algorithm: " << argv[2] <<
"nWith a CSP of: " << argv[3] <<
"nFilename: " << argv[1] <<
std::endl << std::endl;
if (argc == 4)
{
processScheduler = new ProcessScheduler(
argv[2],
atoi(argv[3])
);
}
else
{
processScheduler = new ProcessScheduler(
argv[2],
atoi(argv[3]),
atoi(argv[4]),
atoi(argv[5])
);
}
processScheduler -> LoadFile(argv[1]);
processScheduler -> RunProcesses();
GanntChart ganntChart(*processScheduler);
ganntChart.DisplayChart();
ganntChart.DisplayTable();
ganntChart.DisplaySummary();
system("pause");
delete processScheduler;
}
else
{
PrintUsage();
}
}
Ошибка, которую я получаю при компиляции, такова:
Application.cpp: 41: 32: error: ‘:: main’ должен возвращать ‘int’
Это функция void, как я могу вернуть int и как ее исправить?
Ошибка: «Отсутствует оператор «>>», соотвествующий этим операндам. Типы операндов: std::ifsteam>>int*»