Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-02-02 00:35:04

  harlequin - Użytkownik

harlequin
Użytkownik
Skąd: dolnośląskie
Zarejestrowany: 2006-03-06

błędy przy jakimkolwiek kompilowaniu

Przepisuję jakiś kod z książki, np:

Kod:

#include <iostream.h>

void main()
{
        long n;
        int k;
        cout << "Liczba całkowita: ";
        cin >> n;
        for (k=1; n /= 10; k++);
        cout << "Liczba cyfr: " << k << endl;
}

Zapisuje jako LCyf.cpp

Wpisuję w konsoli: gcc LCyf.cpp -o LCyf.out

I dostaję:

Kod:

LCyf.cpp:1:22: error: iostream.h: Nie ma takiego pliku ani katalogu
LCyf.cpp:3: error: ‘::main’ must return ‘int’
LCyf.cpp: In function ‘int main()’:
LCyf.cpp:7: error: ‘cout’ was not declared in this scope
LCyf.cpp:8: error: ‘cin’ was not declared in this scope
LCyf.cpp:10: error: ‘endl’ was not declared in this scope

Nie mam pojęcia o C++ ani o programowaniu. Dlaczego nie może to się skompilować ? Co zrobić, żeby działało jak powinno?


[/url]

Offline

 

#2  2009-02-02 00:45:01

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: błędy przy jakimkolwiek kompilowaniu

Masz chyba stara książkę w której nauczano starej składni w nowej to wygląda tak:

#include <iostream>

int main()
{
    long n;
    int k;
    std::cout << "Liczba całkowita: ";
    std::cin >> n;
    for (k=1; n/=10; k++);
    std::cout << "Liczba cyfr: " << k << std::endl;
}


i kompiluje się nie gcc a g++ nazwa.cpp -o nazwa.out (gcc to do C, g++ C++). Jeżeli szukasz dobrwej książeczki do C++ od podstaw to polecam Symfonię C++ Grębosza - naprawdę wymiata (starsze wersje mozna znaleźć w formacie PDF, najnowszej chyba jeszcze nikt nie zeskanował - koszt od 30 paru zł)

Ostatnio edytowany przez Huk (2009-02-02 00:53:51)

Offline

 

#3  2009-02-02 01:38:44

  harlequin - Użytkownik

harlequin
Użytkownik
Skąd: dolnośląskie
Zarejestrowany: 2006-03-06

Re: błędy przy jakimkolwiek kompilowaniu

Dziekuję.
Faktycznie, Twój kod działa.
Książka jest z 2002 roku. Szybko się to wszystko zmienia. Jak Wy nadążacie? ;)


[/url]

Offline

 

#4  2009-02-02 01:46:48

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: błędy przy jakimkolwiek kompilowaniu

Hehe ;) googlujemy ;p

Offline

 

#5  2009-02-02 02:24:19

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: błędy przy jakimkolwiek kompilowaniu

Ja zacząłęm sie uczyć dopiero 2 latka temu (ohh te studia...), tak czy siak obecnie przez jakis czas nie powinno się za wiele zmienić bo doszło do standaryzacji ISO (choc po ostatnich jajkach z OOXML nie wiem jak wiele ta standaryzacja jest warta ;] ), Symfonia o której wcześniej wspomniałem jest własnie w dwóch wersjach "starej" i "Standard" (przy czym kod z obu jest praktycznie taki sam ("Standart" jest obszerniejsza) - chyba Grębosz był zwolennikiem standaryzacji zanim do niej doszło - zresztą ciężko się dziwić), tak więc z niej na bank nauczysz się pożądnie i przyszłościowo.

P.S

Jest jeszcze taka możliwość że książka która masz jest pisana po prostu pod jakiś konkretny kompilator który uznawał swoją standaryzację, nie zgodną z ISO (wszystkie starsze wersje Borland C++ i M$ C++ jak dobrze pamiętam tak własnie robiły), stąd jajka w stylu kod kompilujący się w g++ skompiluje sie i tam ale nie vice/versa.

Offline

 

#6  2009-02-05 09:44:39

  gindek - Zubr, bydle na etacie.

gindek
Zubr, bydle na etacie.
Skąd: Z puszczy.
Zarejestrowany: 2008-12-08

Re: błędy przy jakimkolwiek kompilowaniu

uzywaj g++, bo to jest kompilator do c++, gcc jest do "suchego" c, wiec kilka innych rzeczy moze ci sie nie zgadzac/pokrywac jeszcze ;]

I wtracajac swoje 5gr.
Jezeli będzisz uzywal g++ to mozesz dodac linijke "using namespace std; ", nie rozpisujac sie powiem co to da,
mianowicie nie bedziesz musial piszac za kazdym razem "std::XXXX" tylko wtedy wystarczy tak jak miales w pierwszej wersji jaka tu wrzuciles

#include <iostream> // tu nie ma ".h" jak juz kolega zauwazyl, ale nie wiem czy ty zwrociles uwage ;]
                               // w ksiazce beda jeszcze pewnie math.c > cmath (teraz) i stdio.h > cstdio  (teraz)

using namespace std;
int main()

Ale jak napisalem musisz uzywac g++ , bo c nie obsluguje przestrzeni nazw, jak dobrze pamietam.


" Wojny przychodzą i odchodzą, a moi żołnierze są wieczni"


"Zbuduj mały, dziarski router z udostępnionych przez prowadzącego części od Kamaza?"

Offline

 

#7  2009-02-05 14:46:23

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: błędy przy jakimkolwiek kompilowaniu

taka mala uwaga: gcc to "GNU Compiler Collection" i w oparciu o rozszerzenie wywoluje on odpowiednie kompilatory dla C, C++ i nie tylko ... zatem "gcc program.cpp" skompiluje kod c++ (oczywiscie gdy masz zainstalowany kompilator c++ z "kolekcji" kompilatorow gcc) ... glowna roznica polega na tym z czym domyslnie linkuja i jakie opcje posiadaja te programy (gcc , g++)

Ostatnio edytowany przez bercik (2009-02-05 14:47:12)


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#8  2009-02-05 15:14:16

  gindek - Zubr, bydle na etacie.

gindek
Zubr, bydle na etacie.
Skąd: Z puszczy.
Zarejestrowany: 2008-12-08

Re: błędy przy jakimkolwiek kompilowaniu

ooo nie wiedzialem


" Wojny przychodzą i odchodzą, a moi żołnierze są wieczni"


"Zbuduj mały, dziarski router z udostępnionych przez prowadzącego części od Kamaza?"

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)