C++ problem z zabezpieczaniem strumienia wejścia
Ostatnio zmodyfikowano 2011-07-01 21:20
Dark Temat założony przez niniejszego użytkownika |
» 2011-06-30 15:23:11 To jest raczej oczywiste, mi chodziło raczej o niezwykłe niezwykłości :) |
|
Dark Temat założony przez niniejszego użytkownika |
Co robię źle? » 2011-07-01 20:34:43 Żeby nie tworzyć nowego tematu skorzystam ze starego. Czy może ktoś mi pomóc i wytłumaczyć co robię źle w programie ciągle wyskakuje mi w debugerze komunikat: 1>------ Build started: Project: Projekt Alpha, Configuration: Debug Win32 ------ 1>MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup 1>C:\Users\Urszula\documents\visual studio 2010\Projects\Projekt Alpha\Debug\Projekt Alpha.exe : fatal error LNK1120: 1 unresolved externals ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
A to jest sam kod: #include <iostream> using namespace std;
double Wprowadz1Liczbe() { double Liczba; bool L_stan; cout << "Wprowadz pierwsza liczbe: "; cin >> Liczba; L_stan = cin.good(); cin.clear(); cin.sync(); if( L_stan == false ) { do { cout << "Wpisana liczba jest niepoprawna, wprowadz ponownie: "; cin >> Liczba; L_stan = cin.good(); cin.clear(); cin.sync(); } while( L_stan == false ); } return Liczba; }
double Wprowadz2Liczbe() { double Liczba; bool L_stan; do { cout << "Wprowadz druga liczbe (zero zakonczy program): "; cin >> Liczba; L_stan = cin.fail(); cin.clear(); cin.sync(); } while( L_stan ); return Liczba; }
void Wybor( double first, double second, ) { int number; bool number_stan; int wynik; cout << "Wybierz dzialanie:" << endl; cout << "1. Dodawanie" << endl; cout << "2. Odejmowanie" << endl; cout << "3. Mnozenie" << endl; cout << "4. Dzielenie" << endl; cout << "5. Zrezygnuj" << endl; do { cout << "Dzialanie : "; cin >> number; number_stan = cin.fail(); cin.clear(); cin.sync(); } while( number_stan &&( 1 <= number && number <= 5 ) ); switch( number ) { case 1: wynik = first + second; cout << first << " + " << second << " = " << wynik << endl; break; case 2: wynik = first - second; cout << first << " - " << second << " = " << wynik << endl; break; case 3: wynik = first * second; cout << first << " * " << second << " = " << wynik << endl; break; case 4: wynik = first / second; cout << first << " / " << second << " = " << wynik << endl; break; case 5: cout << "Koniec" << endl; return 0; break; } return wynik; }
int main() { double wynik = 0; double first; double second; do { cout << "Wynik wynosi " << wynik << endl; first = Wprowadz1Liczbe(); if( first != 0 ) { second = Wprowadz2Liczbe(); if( second != 0 ) { wynik = Wybor( first, second ); } else return 0; } else return 0; } while( first != 0 || second != 0 ); }
|
|
Mrowqa |
» 2011-07-01 21:05:12 Coś z linkerem ... ( z funkcją main jak mniemam :D ) Spróbuj przed klamrą zamykającą funkcję main dodać return 0; . Wątpię czy to coś da, ale może zadziałać :) Pozdrawiam, Mrowqa |
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-07-01 21:06:53 Przykro mi ale to nie działa :\ Dalej to samo. Sam też szukam błędu ale bez skutku.
Edit: Tworzyło to przeoczenie niedołączenia pliku do projektu :) Teraz się odpala, pokazuje same warningi, które powoli usuwam :) |
|
Mrowqa |
» 2011-07-01 21:14:10 Problem jest w projekcie Błąd oznacza, że nie ma głównego widoczne dla linkera. Ale edytowania plików z głównego lub WinMain w edytorze VS, więc co jest nie tak?
Visual Studio może być używany jako samodzielny edytor daje złudzenie, że rzeczy edycji mogą i powinny być compilable. Tak więc rozwiązanie jest proste nie udało się dodać plik edycji projektu.
Kliknij prawym przyciskiem myszy na rozwiązanie nazwa-> Add-> Existing Item-> plik z głównych |
Więcej info -> stąd cytat ( trochę dalej masz opisany problem ) googleSry, że tak linkami rzucam - nie mam teraz czasu ;/ Mam nadzieję, że uda Ci się to poprawić :) Pozdrawiam, Mrowqa |
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-07-01 21:20:49 Dzięki za pomoc, zniwelowałem warningi i działa bez błędu :D |
|
1 2 « 3 » |