Ошибка main должна возвращать значение

47 / 47 / 15

Регистрация: 09.03.2011

Сообщений: 584

1

09.03.2011, 18:49. Показов 4019. Ответов 3


Студворк — интернет-сервис помощи студентам

ошибка: `main» должен вернуть `int» и т.д. перепробовал много вариантов у меня DEV C++ понятно что с тех пор как написали c++ для чайников и много другой литературы изменился стандарт вместо iostream.h iostream и т.д. подскажите чего делать,или название адекватной литературы или как с этим бороться.



0



ValeryS

Модератор

Эксперт по электронике

8812 / 6594 / 896

Регистрация: 14.02.2011

Сообщений: 23,195

09.03.2011, 18:56

2

C
1
2
3
4
5
int main()
{
..............................
return 0;
}

или я не понял вопроса?



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

C++
1
2
3
4
5
6
7
8
include <...>
 
int main()
{
/* тело функции*/
 
return 0;
}



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

09.03.2011, 22:04

Помогаю со студенческими работами здесь

Ошибка компилирования «error: ‘::main’ must return ‘int’»
должно быть всё верно но вылазит ошибочка,кто знает в чем трабл
#include &lt;iostream&gt;
#include…

Ошибка при сборке многофайлового проекта: «невозможно преобразовать «int» в «const golf»
Сделал многофайловую программу программу, вот она:
//golf.h
#include &lt;iostream&gt;
#ifndef golg_h_…

Ошибка: «невозможно преобразовать аргумент 1 из «int [3][3]» в «int **»»
Приветствую, сделал задание, но выдает вот такую ошибку &quot;int sum(int **,int)&quot;: невозможно…

Ошибка «error C2446: :: нет преобразования «int» в «char *»
Ошибка: &quot;error C2446: :: нет преобразования &quot;int&quot; в &quot;char *&quot;

Когда нажимаю двойным кликом на…

В зависимости от времени года «весна», «лето», «осень», «зима» определить погоду «тепло», «жарко», «холодно», «очень холодно»
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,…

Ошибка: «Отсутствует оператор «>>», соотвествующий этим операндам. Типы операндов: std::ifsteam>>int*»
#include&lt;fstream&gt;
#include&lt;iostream&gt;
#include &lt;string&gt;
using namespace std;
int main()
{…

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

Или воспользуйтесь поиском по форуму:

4

I’ve been working through the «Programming: Principles and Practice using C++» book, and this example was meant to illustrate how data can be lost in type conversions. But when I tried to execute it, it keeps telling me ‘Main’ : must return a value. I tried using «return 0;» after the curly brace for the while loop, but then it gave errors around «Unresolved externals».

I’ve copied the code from the book to Visual Studio and everything else I’ve copied has worked as expected — would anyone be able to tell me how I could fix this please? I don’t know why it’s happening with this specific example or how to make it stop asking for a return value.

Sorry if this is dumb, I’m very inexperienced and I’ve tried googling for an answer, but suggested solutions like «return 0» don’t work :)!

#include "std_lib_facilities.h"

int main()
{
    double d = 0;

    while (cin >> d)
    {

        int i = d;
        char c = i;
        int i2 = c;
        cout << "d==" << d
        << " i==" << i
        << " i2==" << i2
        << " char(" << c << ")n";
    }
}

asked Jan 29, 2016 at 21:09

Dean's user avatar

9

I tried using «return 0;» after the curly brace for the while loop, but then it gave errors around «Unresolved externals».

That’s a separate, unrelated problem uncovered by fixing the first one. Add the return, then deal with the unresolved externals error.

answered Jan 29, 2016 at 21:12

John Kugelman's user avatar

John KugelmanJohn Kugelman

348k67 gold badges524 silver badges574 bronze badges

3

If that’s your whole program, you’re unresolved external is most likely iostream. You need to include that and use the correct namespace.

Consider the following code:

#include <iostream>

using namespace std;

int main() {
   cout << "Hello World!" << endl;
   return 0;
}

Better yet, forgo the using statement and use std::cout so that you don’t have to worry about namespace collision. See this question Why is “using namespace std;” considered bad practice?

#include <iostream>

int main() {
   std::cout << "Hello World!" << std::endl;
   return 0;
}

Community's user avatar

answered Jan 29, 2016 at 21:17

zero298's user avatar

zero298zero298

25.2k9 gold badges73 silver badges99 bronze badges

8

Я работал над книгой «Программирование: принципы и практика с использованием C ++», и этот пример был призван показать, как данные могут быть потеряны при преобразовании типов. Но когда я пытался выполнить его, он все время говорил мне «Main»: должен вернуть значение. Я пытался использовать «return 0;» после фигурной скобки для цикла while, но затем он выдавал ошибки вокруг «Unresolved externals».

Я скопировал код из книги в Visual Studio, и все остальное, что я скопировал, сработало, как и ожидалось — кто-нибудь сможет сказать мне, как я могу это исправить, пожалуйста? Я не знаю, почему это происходит с этим конкретным примером или как заставить его перестать запрашивать возвращаемое значение.

Извините, если это глупо, я очень неопытен, и я попытался найти ответ, но предложенные решения, такие как «return 0», не работают :)!

#include "std_lib_facilities.h"
int main()
{
double d = 0;

while (cin >> d)
{

int i = d;
char c = i;
int i2 = c;
cout << "d==" << d
<< " i==" << i
<< " i2==" << i2
<< " char(" << c << ")n";
}
}

-6

Решение

Я пытался использовать «return 0;» после фигурной скобки для цикла while, но затем он выдавал ошибки вокруг «Unresolved externals».

Это отдельная, не связанная с этим проблема, раскрытая путем исправления первой. Добавьте возврат, затем разберитесь с нерешенной внешней ошибкой.

3

Другие решения

Если это вся ваша программа, вы нерешенный внешний скорее всего iostream, Вы должны включить это и использовать правильное пространство имен.

Рассмотрим следующий код:

#include <iostream>

using namespace std;

int main() {
cout << "Hello World!" << endl;
return 0;
}

Еще лучше отказаться от using заявление и использование std::cout так что вам не нужно беспокоиться о столкновении пространства имен. Смотрите этот вопрос Почему «использование пространства имен std;» считается плохой практикой?

#include <iostream>

int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}

-1

#include<iostream>
using namespace std;

int var = 1;

void global(void)
{
    cout << "Global var = " << var << endl;
    return;
}


}
void main(void)
{
    int var = 100;
    global();
    cout << "Main var = " << var << endl;
    cout << "Main var = " << ::var << endl;
    system("pause");
    return;
}

задан 7 сен 2019 в 18:40

Андрей's user avatar

6

1 ответ

Конечно, согласно стандарту — cм. раздел 6.8.3.1 стандарта (например, тут).

Its type shall have C++ language linkage and it shall have a declared return type of type int

ответ дан 7 сен 2019 в 18:50

Harry's user avatar

HarryHarry

215k15 золотых знаков117 серебряных знаков228 бронзовых знаков

Это моя основная функция:

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 и как ее исправить?

  • Ошибка main cpp 312
  • Ошибка main bios checksum error что делать
  • Ошибка main beam bulb faulty
  • Ошибка mail delivery system
  • Ошибка magic bullet looks sony vegas