Ĺadny brzuch
Witam
Od jakiegoś tygodnia zaczynam naukę programowania w C++ wraz z kursem "Od zero do gier kodera". I teraz napotkałem następujący problem. (Z góry mówię ,że używam Visual C++ Express Edition .net 2008 ).
Mam następujący program:
// Arithmetic - proste działania matematyczne #include <iostream> #include <conio.h> #include <stdafx.h> void main() { int nLiczba1; std::cout << "Podaj pierwsza liczbe: "; std::cin >> nLiczba1; int nLiczba2; std::cout << "Podaj druga liczbe: "; std::cin >> nLiczba2; int nWynik = nLiczba1 + nLiczba2; std::cout << nLiczba1 << " + " << nLiczba2 << " = " << nWynik; getch(); }
Po skompilowaniu wyskakuje błąd 2857. Zupełnie nie wiem o co chodzi. Jest to oryginalny kod programu z kursu więc dziwne ,że nie działa jak należy.
Ktoś ma jakieś pomysły ?
Użytkownik queertin edytował ten post 28 grudzień 2009, 20:52
Wrzuciłam ten kod do Dev-c++ i mi pokazał, że nie ma takiej biblioteki stdafx.h, więc wyrzuciłam tę linijkę z kodu i wszystko dobrze działa. Może też tak spróbuj.
PS. Ja się nie dziwię, że jakieś kody z książek mogą nie chodzić. Też mam parę książek z listingami, które przepisuje i mi się nie kompiluje tak jak należy.
@down: Dev-C++ mi został z nauki informatyki z liceum :) ale jeszcze mam Visuala Studio 2008, ale powiem, że jak na razie, nie przepadam za nim :)
"stdafx.h" jest generowany przez VS podczas tworzenia projektu. To nie jest biblioteka. Dlatego kompilator nie potrafi go znaleźć.
Korzystasz z kursu internetowego, więc nie działający kod to nic dziwnego. Jak widać autor zapomniał napisać jak tworzy się projekty w VS (jeżeli w ogóle wspomniał, że pisał w tym IDE). W kursach internetowych ludzie można spotkać różne dziwne rzeczy i nabrać złych nawyków (mówię to na podstawie własnego doświadczenia ;)). Lepiej uczyć się z książek.
@katarina: przesiądź się na nowsze IDE ;)
Użytkownik Kozack edytował ten post 28 grudzień 2009, 21:37
A ma ktoś jakieś pomysły co do tego, jak zmodyfikować kod by działał poprawnie w Visual Studio 2008 ?
nie ma takiej biblioteki stdafx.h, więc wyrzuciłam tę linijkę z kodu i wszystko dobrze działa
Dostałeś już odpowiedź ;) Ten plik nie jest potrzebny.
Użytkownik Kozack edytował ten post 29 grudzień 2009, 12:52
Wyrzuciłem i dalej to samo... Ten sam błąd.
Chwila, wyrzuciłem z Source Files pliki tej biblioteki i po usunięciu jej (stdafx.h) wyskakuje błąd krytyczny 1010 mówiący ,że muszę mieć ta bibliotekę (?).
Teraz jak dodam, wyskakuje błąd 1083 "fatal error C1083: Cannot open precompiled header file: 'Debug\Program arytmetyczny.pch': No such file or directory". Wygląda na to ,że za dużo usunąłem...
@down
New > Project > Win 32 Console application > Console application (Zaznaczony był precompiled header... to chyba przez to )
Użytkownik JJ1417 edytował ten post 29 grudzień 2009, 15:16
A powiedz po kolei, jak włączałeś VS, żeby napisać ten program?
Tworząc projekt w VS wybierz opcję Empty project, a później dodaj nowy plik źródłowy. Wklej do niego kod usuwając z niego "stdafx.h".
Dałem pusty project i nie wiedziałem, co dalej,jednak drogą dedukcji doszłem do tego ,że poprzedni project miał C++ file, a ten go nie ma i trzeba utworzyć nowy (nie wiedziałem na początku gdzie wkleić kod), dałem "New Item" i C++ file, potem zrobiłem tak jak wy kazaliście i gotowe :)
Wielkie dzięki ! (Już byłem bliski odłożenia kursu na bok i wmówienia sobie ,że jest on na mnie za trudny :))
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Od jakiegoś tygodnia zaczynam naukę programowania w C++ wraz z kursem "Od zero do gier kodera". I teraz napotkałem następujący problem. (Z góry mówię ,że używam Visual C++ Express Edition .net 2008 ).
Mam następujący program:
// Arithmetic - proste działania matematyczne #include <iostream> #include <conio.h> #include <stdafx.h> void main() { int nLiczba1; std::cout << "Podaj pierwsza liczbe: "; std::cin >> nLiczba1; int nLiczba2; std::cout << "Podaj druga liczbe: "; std::cin >> nLiczba2; int nWynik = nLiczba1 + nLiczba2; std::cout << nLiczba1 << " + " << nLiczba2 << " = " << nWynik; getch(); }
Po skompilowaniu wyskakuje błąd 2857. Zupełnie nie wiem o co chodzi. Jest to oryginalny kod programu z kursu więc dziwne ,że nie działa jak należy.
Ktoś ma jakieś pomysły ?
Użytkownik queertin edytował ten post 28 grudzień 2009, 20:52
Wrzuciłam ten kod do Dev-c++ i mi pokazał, że nie ma takiej biblioteki stdafx.h, więc wyrzuciłam tę linijkę z kodu i wszystko dobrze działa. Może też tak spróbuj.
PS. Ja się nie dziwię, że jakieś kody z książek mogą nie chodzić. Też mam parę książek z listingami, które przepisuje i mi się nie kompiluje tak jak należy.
@down: Dev-C++ mi został z nauki informatyki z liceum :) ale jeszcze mam Visuala Studio 2008, ale powiem, że jak na razie, nie przepadam za nim :)
"stdafx.h" jest generowany przez VS podczas tworzenia projektu. To nie jest biblioteka. Dlatego kompilator nie potrafi go znaleźć.
Korzystasz z kursu internetowego, więc nie działający kod to nic dziwnego. Jak widać autor zapomniał napisać jak tworzy się projekty w VS (jeżeli w ogóle wspomniał, że pisał w tym IDE). W kursach internetowych ludzie można spotkać różne dziwne rzeczy i nabrać złych nawyków (mówię to na podstawie własnego doświadczenia ;)). Lepiej uczyć się z książek.
@katarina: przesiądź się na nowsze IDE ;)
Użytkownik Kozack edytował ten post 28 grudzień 2009, 21:37
A ma ktoś jakieś pomysły co do tego, jak zmodyfikować kod by działał poprawnie w Visual Studio 2008 ?
nie ma takiej biblioteki stdafx.h, więc wyrzuciłam tę linijkę z kodu i wszystko dobrze działa
Dostałeś już odpowiedź ;) Ten plik nie jest potrzebny.
Użytkownik Kozack edytował ten post 29 grudzień 2009, 12:52
Wyrzuciłem i dalej to samo... Ten sam błąd.
Chwila, wyrzuciłem z Source Files pliki tej biblioteki i po usunięciu jej (stdafx.h) wyskakuje błąd krytyczny 1010 mówiący ,że muszę mieć ta bibliotekę (?).
Teraz jak dodam, wyskakuje błąd 1083 "fatal error C1083: Cannot open precompiled header file: 'Debug\Program arytmetyczny.pch': No such file or directory". Wygląda na to ,że za dużo usunąłem...
@down
New > Project > Win 32 Console application > Console application (Zaznaczony był precompiled header... to chyba przez to )
Użytkownik JJ1417 edytował ten post 29 grudzień 2009, 15:16
A powiedz po kolei, jak włączałeś VS, żeby napisać ten program?
Tworząc projekt w VS wybierz opcję Empty project, a później dodaj nowy plik źródłowy. Wklej do niego kod usuwając z niego "stdafx.h".
Dałem pusty project i nie wiedziałem, co dalej,jednak drogą dedukcji doszłem do tego ,że poprzedni project miał C++ file, a ten go nie ma i trzeba utworzyć nowy (nie wiedziałem na początku gdzie wkleić kod), dałem "New Item" i C++ file, potem zrobiłem tak jak wy kazaliście i gotowe :)
Wielkie dzięki ! (Już byłem bliski odłożenia kursu na bok i wmówienia sobie ,że jest on na mnie za trudny :))