Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Изучаю с++ / 21 сообщений из 21, страница 1 из 1
04.11.2013, 14:57
    #38451897
nexio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
Самостоятельно изучаю с++, увы не пойму из-за чего ошибка калькуляторе. Если не затруднит, подскажите пожалуйста:
Код: plaintext
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.
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
 
int main()
{
    char s[100];
    cout << "Vvedite primer: \n";
    cin >> s;
 
    long result = 0;
    int first_operand, second_operand;
 
    char first_string[20];
    char second_string[20];
 
    memset( first_string,0, 20);
    memset(second_string,0, 20);
 
    char cur_operator = ' ';
 
    char Operator[] = {'+', '-', '*', '/'};
 
    bool error = false;
 
    unsigned i;
 
    for (i = 0; isdigit(s[i]) ; ++i)
    {
       first_string[i]=s[i];
    }
 
    for (unsigned j = 0; j < sizeof(Operator); ++j) {
 
       if (s[i] != Operator[j]) {
          error = true;
       }
       else {
          error = false;
          cur_operator = Operator[j];
          break;
       }
    }
    if (error) {
       cout << "WRONG OPERATOR: " << s[i];
       return -1;
    }
 
    for (unsigned j = 0; isdigit(s[++i]) && i < sizeof(s) ; ++j)
    {
       second_string[j]=s[i];
    }
 
    first_operand  = atoi( first_string);
    second_operand = atoi(second_string);
 
    switch(cur_operator) {
 
       case '+': if(first_operand) result = first_operand + second_operand;
                 else result += second_operand;
       break;
       case '-': if(first_operand) result = first_operand - second_operand;
                 else result -= second_operand;
       break;
       case '*': if(first_operand) result = first_operand * second_operand;
                 else {
                    std::cout << "ERROR: Operand missing";
                    return -1;
                 }
       break;
       case '/': if(first_operand) result = first_operand / second_operand;
                 else {
                    std::cout << "ERROR: Operand missing";
                    return -1;
                 }
       break;
       default:
          std::cout << "ERROR";
          return -1;
    }
    cout << '=' << result;
 
    cin.get();
 
    return 0;
}


Ругается на:
1>------ Построение начато: проект: calc, Конфигурация: Debug Win32 ------
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в функции ___tmainCRTStartup
1>C:\Users\Руслан\Documents\Visual Studio 2010\Projects\calc\Debug\calc.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Я не студент, просто пытаюсь расширить свой кругозор, буду признателен за объяснение с комментарием.
...
Рейтинг: 0 / 0
04.11.2013, 19:29
    #38452199
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
nexioне пойму из-за чего ошибка калькуляторе.Ошибка не в калькуляторе, а в проекте.
У тебя собирается Win32 программа, а должна собираться " Консольная Win32".
Разница в стратовом модуле который подклеивается автоматически и определяет как твоя программа будет работать.

Снеси к чертям MSVS, возьми MinGW. Будет больше клавиатуры, меньше мыши, больше совпадений с учебниками и вообще проще жить.
...
Рейтинг: 0 / 0
05.11.2013, 05:07
    #38452483
valkot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
White Owl,

да ну это же смешно новичку такую чушь советовать. Ваш мингв это гланды через анус.
С ним он точно ничего не изучит. Ну все эти намеки на лучшую поддержку стандартов, зачем эта пропаганда? Костыли этот ваш мингв. Но главное он конкретно здесь особенно неуместен. Да с теми поделками человек вообще разжелает расширять кругозор. Козе коньки. Когда есть возможность пользоваться родным для системы инструментарием разработки совет использовать левые поделки которые ТОЧНО не пойдут легче, выглядит как издевательство.

Автор, вам нужно научиться настраивать среду разработки и опции проекта. Это нужно делать для любого инструментария. Про это все есть в соответствующих разделах на msdn. Там и модули всякие типа первая гуй программа первая что-то еще. Там все есть. Вплоть до детального описания опций компилятора и других. Конкретно здесь вам уже сказали: при создании проекта нужно выбрать консольное Win32 приложение. Потому что ваш неразрешенный символ это оконная главная ф-я, а у вас неоконная консольная программа и главная ф-ция - main. А проект создали очевидно как имеющий графич.интерфейс пользователя.
...
Рейтинг: 0 / 0
05.11.2013, 07:57
    #38452500
nexio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
valkot,
Спасибо за Ваш ответ. Я взял книжек почитать и делал как в них написано, странно на ноутбуке работает, на пк не работает.
В книгах писали, что лучше начинать пробовать программировать в Borland, но я скачал ms visual studio 2010 express. Книжка по которой я пытаюсь изучить с++ Джесс Либерти, Девид Б. Хорват, CCP называется Освой самостоятельно C++. Если Вы можете порекомендовать что то другое, что создаст менее трудностей в изучении и понимании C++ буду признателен. А пока поищу в интернете, о настройке.
...
Рейтинг: 0 / 0
05.11.2013, 08:47
    #38452518
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
valkotда ну это же смешно новичку такую чушь советовать. Ваш мингв это гланды через анус.
....
совет использовать левые поделки которые ТОЧНО не пойдут легче, выглядит как издевательство.Ну почему это вдруг "ТОЧНО не пойдут"? У всех идут, а у одного ТС, ТОЧНО не пойдет?

Что проще, сидеть махать мышой в попытке догадаться какую галочку поставить в MSVS чтобы сделать простую вещь или написать в консоли:
g++ -o MyCoolProg mysource.cpp
И получить все что нужно?


Настраивать среду разработки действительно нужно уметь.
А те кто не желает зависеть от сред - берет MinGW, и просто пишет. Любой редактор, любая консоль.
К тому-же, человек привыкший к консоли сможет работать в любой ОС, с любым IDE. А ушибленные MSVS без среды жить не могут вообще.
...
Рейтинг: 0 / 0
05.11.2013, 09:35
    #38452552
nexio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
После работы попробую сделать по Вашему совету. Просто все советуют и говорят по разному, но в Вашем совете мне понравилось, что оно для любой среды разработки и и любой OS я больше симпатизирую Unix подобным, но увы последний раз я программировал на vb лет так 10 примерно назад в школе на олимпиаде "кенгуру" увы потом за это дело не брался вообще ...
...
Рейтинг: 0 / 0
05.11.2013, 10:03
    #38452586
_Прохожий_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
White OwlА те кто не желает зависеть от сред - берет MinGW, и просто пишет. Любой редактор, любая консоль.
К тому-же, человек привыкший к консоли сможет работать в любой ОС, с любым IDE. А ушибленные MSVS без среды жить не могут вообще.

Походу Вы просто не в курсе, что компилятор с линкером у MS тоже консольные и никто не мешает извращаться с Notepad и консолью и гордо "не зависеть от сред".
...
Рейтинг: 0 / 0
05.11.2013, 10:33
    #38452618
valkot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
White Owlvalkotда ну это же смешно новичку такую чушь советовать. Ваш мингв это гланды через анус.
....
совет использовать левые поделки которые ТОЧНО не пойдут легче, выглядит как издевательство.Ну почему это вдруг "ТОЧНО не пойдут"? У всех идут, а у одного ТС, ТОЧНО не пойдет?

Что проще, сидеть махать мышой в попытке догадаться какую галочку поставить в MSVS чтобы сделать простую вещь или написать в консоли:
g++ -o MyCoolProg mysource.cpp
И получить все что нужно?


Настраивать среду разработки действительно нужно уметь.
А те кто не желает зависеть от сред - берет MinGW, и просто пишет. Любой редактор, любая консоль.
К тому-же, человек привыкший к консоли сможет работать в любой ОС, с любым IDE. А ушибленные MSVS без среды жить не могут вообще.
дело не в использовании IDE, в консоли можно всегда. cl тоже работает рассовополноценно через консоль и без мышки. Ничего не мешает использовать именно так и с блокнотом. Но это инструмент от разработчика системы и API. А у мингв - Ddk от реактоса. И это серьезно? И это будет легче, без геморроя? Разве что хелловорлд, и то если не юникод версия. Я уже не говорю что msvc лучше (размеры, скорость), потомучто вообще стоит вопрос зачем такие вещи как мингв создавались? Садисты для мазохистов. Зачем нужны третьесторонние клепачи системных заголовков, неужели они лучше знают интерфейс чем его создатели? Зачем нужен гнусный отладчик, неужели он лучше WinDbg?! Да ни разу. Gdb это ахтунг и все это знают. Зачем нужны чужие и ненужные утилиты и почему нужно отказываться от нужных? Это чужой компилятор из совсем другой системы, сяктак запиленный делать вид серьезного инструмента под виндовс. Честно, он нужен только религиозным фанатикам гпл религии. Его цель одна - лишь бы не Мс. Реально как инструмент он мог бы быть теоретически полезен только очень ленивым уникс программистам желающим писать под виндовс. как переходная среда.
...
Рейтинг: 0 / 0
05.11.2013, 10:38
    #38452623
valkot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
_Прохожий_White OwlА те кто не желает зависеть от сред - берет MinGW, и просто пишет. Любой редактор, любая консоль.
К тому-же, человек привыкший к консоли сможет работать в любой ОС, с любым IDE. А ушибленные MSVS без среды жить не могут вообще.

Походу Вы просто не в курсе, что компилятор с линкером у MS тоже консольные и никто не мешает извращаться с Notepad и консолью и гордо "не зависеть от сред".
опередили.) но знаете сколько я с телефона набивал.))
...
Рейтинг: 0 / 0
05.11.2013, 10:57
    #38452645
valkot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
nexiovalkot,
Спасибо за Ваш ответ. Я взял книжек почитать и делал как в них написано, странно на ноутбуке работает, на пк не работает.
В книгах писали, что лучше начинать пробовать программировать в Borland, но я скачал ms visual studio 2010 express. Книжка по которой я пытаюсь изучить с++ Джесс Либерти, Девид Б. Хорват, CCP называется Освой самостоятельно C++. Если Вы можете порекомендовать что то другое, что создаст менее трудностей в изучении и понимании C++ буду признателен. А пока поищу в интернете, о настройке.
учтите, и в книгах и здесь и везде, советы где легче где лучше - это бессовестное навязывание своих предпочтений. Препятствия подобные вашему неизбежны в независимости от того на чем вы выберете учиться. Это вообще ерундовые препятствия. Не надо метаться, учите свои книги, читайте MSDN - при желании там можно найти все что нужно чтобы разобраться в работе с msvc.
...
Рейтинг: 0 / 0
05.11.2013, 11:20
    #38452675
nexio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
Самым ценным советом считаю MSDN - читать и учить.
...
Рейтинг: 0 / 0
05.11.2013, 11:39
    #38452703
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
nexio,

начинать пробовать программировать в Borland, но я скачал ms visual studio 2010 express.

Не, это был плохой совет. Начинать надо либо в VisualStudio, либо в GCC/MinGW.
...
Рейтинг: 0 / 0
05.11.2013, 11:47
    #38452714
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
White Owlvalkotда ну это же смешно новичку такую чушь советовать. Ваш мингв это гланды через анус.
....
совет использовать левые поделки которые ТОЧНО не пойдут легче, выглядит как издевательство.Ну почему это вдруг "ТОЧНО не пойдут"? У всех идут, а у одного ТС, ТОЧНО не пойдет?

Что проще, сидеть махать мышой в попытке догадаться какую галочку поставить в MSVS чтобы сделать простую вещь или написать в консоли:
g++ -o MyCoolProg mysource.cpp
И получить все что нужно?


Настраивать среду разработки действительно нужно уметь.
А те кто не желает зависеть от сред - берет MinGW, и просто пишет. Любой редактор, любая консоль.
К тому-же, человек привыкший к консоли сможет работать в любой ОС, с любым IDE. А ушибленные MSVS без среды жить не могут вообще.

Я согласен со справедливым гневом WhiteOwl-а, но надо сказать, что отсасти и другая сторона права -- сейчас в данный конкретный момент (на самом деле на состояние полгода или год назад) MinGW находится не в лучшей форме, проект раздвоился, и достаточно трудно даже понять, откуда его качать в правильном виде. Но как раз сейчас за дело взялись наши товарищи, и уже создалась новая мощная ветка (именно из неё берётся билд minGW для QTCreator, коий я и рекомендую использовать в качестве IDE под MinGW , если потребуется). Так что скоро с MinGW будет всё совсем хорошо.

Но если что-то не получается с MinGW, я рекомендую поставить просто Cygwin и в нём GCC. Это вообще будет работать на ура, без проблем.
...
Рейтинг: 0 / 0
05.11.2013, 11:48
    #38452717
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
_Прохожий_White OwlА те кто не желает зависеть от сред - берет MinGW, и просто пишет. Любой редактор, любая консоль.
К тому-же, человек привыкший к консоли сможет работать в любой ОС, с любым IDE. А ушибленные MSVS без среды жить не могут вообще.

Походу Вы просто не в курсе, что компилятор с линкером у MS тоже консольные и никто не мешает извращаться с Notepad и консолью и гордо "не зависеть от сред".


Успокойся, ОН -- в курсе. :-)
...
Рейтинг: 0 / 0
05.11.2013, 11:56
    #38452732
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
дело не в использовании IDE, в консоли можно всегда. cl тоже работает рассовополноценно через консоль и без мышки. Ничего не мешает использовать именно так и с блокнотом. Но это инструмент от разработчика системы и API. А у мингв - Ddk от реактоса.

На кой хрен начинающему DDK ? Я-то даже за свои 20 лет карьеры никогда его не ставил.

И это серьезно? И это будет легче, без геморроя? Разве что хелловорлд, и то если не юникод версия.

Юникод вообще никому нафиг не нужен. Забудьте эту хрень. Нет юникода и никогда не было.
Это была тупиковая ветвь развития человечества. И тем более вредно прививать это дело начинающим.


Я уже не говорю что msvc лучше (размеры, скорость), потомучто вообще стоит вопрос зачем такие вещи как мингв создавались? Садисты для мазохистов.




А зачем ты дышишь ? Зачем текут реки ? Зачем строят мосты над ними ?


Зачем нужны третьесторонние клепачи системных заголовков, неужели они лучше знают интерфейс чем его создатели? Зачем нужен гнусный отладчик, неужели он лучше WinDbg?!


Лучше. GDB лучший в мире дебагер на сагодня. Но винда наверное не лучшая для него среда, я с этим согласен.


Да ни разу. Gdb это ахтунг и все это знают. Зачем нужны чужие и ненужные утилиты и почему нужно отказываться от нужных? Это чужой компилятор из совсем другой системы, сяктак запиленный делать вид серьезного инструмента под виндовс. Честно, он нужен только религиозным фанатикам гпл религии. Его цель одна - лишь бы не Мс. Реально как инструмент он мог бы быть теоретически полезен только очень ленивым уникс программистам желающим писать под виндовс. как переходная среда.


Молодой, горячий, блин...

Речь была о компиляторе для начинающих, которые учаться по книжкам. Там -- стандартный С++ и стандартный С.
Там ничего больше не надо. И не надо будет, пока человек не выучить это. Другое -- лишнее. поэтому там всё равно, что за компилятор, лишь бы в нём нельзя было бы легко пойти не в ту степь. Как вот топикстартер -- создал нестандартное для С++ виндовое приложение -- и удивляется, что у него не работает.
...
Рейтинг: 0 / 0
05.11.2013, 12:02
    #38452745
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
Короче, итог:

Для начинающих желательно использовать простой стандартный компилятор, для начала -- без IDE и без системы сборки.

Для Win32/64 подойдут VisualStudio Express или MinGW или Cygwin+GCC.

MinWG брать здесь: http://mingw-w64.sourceforge.net/index.php

Для MinGW можно использовать QTCreator в качестве IDE, при этом скачав QTCreator, вы уже имеете MinGW нужной сборки внутри.
...
Рейтинг: 0 / 0
05.11.2013, 12:05
    #38452752
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
nexioСамым ценным советом считаю MSDN - читать и учить.

Для начала лучше читать не MSDN, а http://www.cplusplus.com/

MSDN содержит много материала, как стандартного (с точки зрения ANSI C, ANSI C++ и POSIX), так и нестандартного, специфичного для MS Windows и других систем от MS. Также там легко попутать С++ и Managed C++.
...
Рейтинг: 0 / 0
05.11.2013, 18:39
    #38453570
ART-CODE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
Забавно, моя первая программа тоже была консольный калькулятор на C++
Компилировал его в C++Builder-3
А в шестом билдере перекомпилировал (с некоторыми доработками) исходники утилит Sysinternals.
Так что C++Builder - это не только кнопочки на форму мышкой таскать
:)
...
Рейтинг: 0 / 0
06.11.2013, 07:45
    #38453932
nexio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
Огромное спасибо, с калькулятором закончил, следующим уроком написать программку обмена сообщениями (аналог icq) или как то в этом роде.
...
Рейтинг: 0 / 0
06.11.2013, 10:10
    #38454021
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
nexio,

Пиши без GUI, в терминале.
...
Рейтинг: 0 / 0
07.11.2013, 19:20
    #38456871
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изучаю с++
Можно в ideone писть, например.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Изучаю с++ / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]