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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Przepisuję jakiś kod z książki, np:
#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ę:
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?
Offline
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
Dziekuję.
Faktycznie, Twój kod działa.
Książka jest z 2002 roku. Szybko się to wszystko zmienia. Jak Wy nadążacie? ;)
Offline
Hehe ;) googlujemy ;p
Offline
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
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.
Offline
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)
Offline
ooo nie wiedzialem
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00006 | SET NAMES latin2 |
0.00116 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.149.242.71' WHERE u.id=1 |
0.00101 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.149.242.71', 1716342919) |
0.00057 | SELECT * FROM punbb_online WHERE logged<1716342619 |
0.00088 | DELETE FROM punbb_online WHERE ident='185.191.171.18' |
0.00077 | SELECT topic_id FROM punbb_posts WHERE id=109921 |
0.00128 | SELECT id FROM punbb_posts WHERE topic_id=13303 ORDER BY posted |
0.00070 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=13303 AND t.moved_to IS NULL |
0.00007 | SELECT search_for, replace_with FROM punbb_censoring |
0.00085 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=13303 ORDER BY p.id LIMIT 0,25 |
0.00111 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=13303 |
Total query time: 0.00857 s |