Strona 1 z 1

[SOLVED]NetBeans początkowe kompilacje C++

: 15 lis 2010, 01:09
autor: holkov
Witam otóż sprawa wygląda tak że jeśli napisze program:

Kod: Zaznacz cały

#include <iostream>
using namespace std;
main()
{
    int
            a = 5,
            b = 5,
            c = 5,
            d = 5;
     cout << "A oto wartość poszczególnych wyrażeń\n"
            "(nie mylić ze zmiennymi)"
         cout << "++a = " << ++a << endl //w tej linijce wywala błąd! Why ?
              << "b++ = " << b++ << endl
              << "--c = " << --c << endl
              << "d-- = " << d-- << endl;
     cout << "po obliczeniu tych wyrażen, same\n"
             "zmienne maja wartosci"
         << "a = " << a << endl
         << "b = " << b << endl
         << "c = " << c << endl
         << "d = " << d << endl;
}
Przy próbie kompilacji pojawia się coś takiego (fragment z istotnych komunikatów):

Kod: Zaznacz cały

newfile.cpp: In function ‘int main()’:
newfile.cpp:12: error: expected ‘;’ before ‘cout’
make[2]: *** [build/Debug/GNU-Linux-x86/newfile.o] Błąd 1
make[1]: *** [.build-conf] Błąd 2
make: *** [.build-impl] Błąd 2

BUILD FAILED (exit value 2, total time: 986ms)
Kombinuje z tym już dosłownie jak "koń pod górę" i mi nie wychodzi ,próbowałem różnych kombinacji lecz nic konkretnego mi już nie przychodzi do głowy, jak się z tym uporać ? Proszę o pomoc w tej sprawie:idea:

Odp: NetBeans początkowe kompilacje C++

: 15 lis 2010, 07:24
autor: kabanek
zapomniałeś o średniku na przykład tutaj:

Kod: Zaznacz cały

"(nie mylić ze zmiennymi)";

Odp: NetBeans początkowe kompilacje C++

: 15 lis 2010, 07:28
autor: ilu2112
Po pierwsze - int main() zamiast main().
Po drugie - nie używaj endl do łamania wiersza. To jest jedna z najgorszych praktyk. Zamiast tego należy używać "\n".
Po trzecie -

Kod: Zaznacz cały

     cout << "A oto wartość poszczególnych wyrażeń\n"
            "(nie mylić ze zmiennymi)"
Tutaj brakuje średnika. Proponuję czytać dokładnie informacje o błędach. Twój błąd mówi, że przed cout'em w linijce 12 brakuje średnika. I patrz, linijki 10-11 zawierają ten właśnie błąd :)

Odp: NetBeans początkowe kompilacje C++

: 15 lis 2010, 11:25
autor: holkov

Kod: Zaznacz cały

#include <iostream>
using namespace std;
int main()
{
    int
            a = 5,
            b = 5,
            c = 5,
            d = 5;
     cout << "A oto wartość poszczególnych wyrażeń\n";
            "(nie mylić ze zmiennymi)\n";
     cout     << "++a = " << ++a << "\n" //w tej linijce wywala błąd! Why ?
              << "b++ = " << b++ << "\n"
              << "--c = " << --c << "\n"
              << "d-- = " << d-- << "\n";
     cout << "po obliczeniu tych wyrażen, same\n";
             "zmienne maja wartosci\n";
         << "a = " << a << "\n" //error: expected primary-expression before ‘<<’ token
         << "b = " << b << "\n"
         << "c = " << c << "\n"
         << "d = " << d << "\n";
}
Teraz chyba średników nie brakuje ,ale teraz jak widać jest coś nie tak przy linijce 18 ,próbowałem zrobić linijke wyżej nawet bez "\n" ale nie zmienia to nic

Odp: NetBeans początkowe kompilacje C++

: 15 lis 2010, 11:43
autor: JSokol
Teraz musisz dopisać "cout " przed "<< "a = "" w tejże linijce. Nie można tego dołączyć pod "poprzedniego cout'a", bo tamta komenda jest zakończona średnikiem.
Co więcej, linijka wyżej, czyli "zmienne maja wartosci\n"; też nie ma swojego cout'a. Więc tam także dopisz: "cout << "

Ostatecznie cały ten fragment po poprawkach:

Kod: Zaznacz cały

cout << "po obliczeniu tych wyrażen, same\n";
cout << "zmienne maja wartosci\n";
cout << "a = " << a << "\n"
       << "b = " << b << "\n"
       << "c = " << c << "\n"
       << "d = " << d << "\n";

Odp: NetBeans początkowe kompilacje C++

: 15 lis 2010, 11:47
autor: holkov
Hmm też na to wpadłem ,lecz troche niżej zrobiło sie trochę czerwono:cry::

Kod: Zaznacz cały

build/Debug/GNU-Linux-x86/newfile.o: In function `main':
/home/holkov/NetBeansProjects/aplikacja one/newfile.cpp:4: multiple definition of `main'
build/Debug/GNU-Linux-x86/main.o:/home/holkov/NetBeansProjects/aplikacja one/main.cpp:15: first defined here
build/Debug/GNU-Linux-x86/newfile1.o: In function `main':
/home/holkov/NetBeansProjects/aplikacja one/newfile1.cpp:7: multiple definition of `main'
build/Debug/GNU-Linux-x86/main.o:/home/holkov/NetBeansProjects/aplikacja one/main.cpp:15: first defined here
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/aplikacja_one] Błąd 1
make[1]: *** [.build-conf] Błąd 2
make: *** [.build-impl] Błąd 2

Odp: NetBeans początkowe kompilacje C++

: 15 lis 2010, 11:58
autor: JSokol
Nie możesz w tym samym projekcie dwa razy definiować funkcji main, nawet jeżeli są w innych plikach.
Rozumiem, że utworzyłeś sobie dodatkowy plik żeby na nim eksperymentować, dlatego albo go usuń z projektu, albo zakomentuj całą jego zawartość tak, żeby w tym projekcie tylko w jednym pliku pojawiała się definicja funkcji main.

Odp: NetBeans początkowe kompilacje C++

: 15 lis 2010, 12:03
autor: holkov
Baaardzo Ci dziekuję ,kompletnie zapomniałem właśnie o tym drugim projekcie i stąd ten ambaras ,teraz dograłem wszystko jak należy i działa super :)