Zacząłem się uczyć programować językiem C++. Jednak nie wiem jakich programów używać do tego. Chciałbym się Was poradzić czego najlepiej używać na początku.
Jeżeli używasz systemu unikso-podobnego to polecam Ci:
-> edytor tekstu: Vi, Emacs, Kate
-> kompilator g++ (wchodzi w skład pakietu GCC)
-> środowisko programistyczne kDevelop
używam systemu windows XP
Właściwie to dwa środowiska:
Obydwia programy są darmowe (drugi do użytku własnego również). Osobiście używam tego pierwszego.
tez polecam DevC++ w windowsie
MS Visual C++ 2005 jest jednym z najlepszych(jak nie najlepszym) IDE pod Windowsa.
Ok, dzięki panowie za pomoc w doborze programu. Ale mam jeszcze kilka pytań
-
Gdy napisałem pierwszy program (zgodnie z kursem, który posiadam) to po uruchomieniu programu jest on automatycznie zamykany (włącza się i wyłącza)
-
jest błędem, gdy napiszę:
“tekst”
a wg. kursu powinno być:
" tekst "
? 3. Co w tym kodzie jest źle wpisane?
//Listing 2.2 użycie std::cout
#include
int main()
{
std::cout << "Hej tam\n ";
std::cout << " to jest 5: " << 5 << "\n ";
std::cout << " Manipulator std::endl ";
std::cout << " wpisuje nowa linie na ekranie. ";
std::cout << std::endl;
std::cout << " to jest bardzo duza liczba:\t" << 7000
std::cout << std::endl;
std::cout << " to jest suma 8 i 5 ";
std::cout << 8+5 << std endl;
std::cout << " to jest ulamek\t\t ";
std::cout << (float) 5/8 <
std::cout << " i bardzo, bardzo duza liczba ";
std::cout << (double) 7000 * 7000 << std::endl;
std::cout << " Nie zapomnij zmienic Jesse Liberty ";
std::cout << " na swoje nazwisko...\n ";
std::cout << "xxx xxx jest programista C++!\n "
return 0;
}
Dodaj sobie
system("PAUSE");
przed instrukcją
return 0;
w funkcji main. Pomoże.
Dla kompilatora nie.
Są błędy w trzech linijkach. Czytaj komunikaty i sam je napraw.
std::cout << " to jest bardzo duza liczba:\t" << 7000
std::cout << 8+5 << std endl;
std::cout << "xxx xxx jest programista C++!\n "
Dzięki wielkie za pomoc. Jak na razie poważniejszych błędów brak.
Poważniejszego kodu też brak. Jeśli aplikacja nie kompiluje się, czytaj uważnie błędy od pierwszego (przy najniższym numerze linii). W większości przypadków błąd dotyczy dokładnie miejsca wskazanego przez błąd, lub miejsca tuż przed (poprzedniego słowa, poprzedniej linii). Wbrew pozorom komunikat błędu kompilacji mówi wszystko co niezbędne na temat problemu.
Poza tym zamiast pisać wszędzie std::cout i std::cokolwiek, możes pisać np. samo cout, jeśli zadeklarujesz, że używasz przestrzeni nazw std.
OK, więc trafiłem na bardziej skomplikowany błąd, mianowicie wyświetla mi się coś takiego:
[Linker error] undefined reference to `WinMain@16'
oto kod źródłowy programu:
#include
int amin()
{
using std::cout;
using std::cin;
int MetsScore, YankessScore;
cout << "wpisz wynik dla Metsow: ";
cin >> MetsScore;
cout << " \n Wpiszwynik dla Yankess: ";
cin >> YankessScore;
cout << "\n";
if (MetsScore > YankessScore)
{
cout << " Go Yankess! \n";
}
if (MetsScore == YankessScore)
{
cout << "Remis? Eeeee... Nie Moze byc... \n";
cout << "Podaj mi prawdziwy wynik dla Yanks: ";
cin >> YankessScore;
if (MetsScore > YankessScore)
cout << "Wiedzialem! Go Mets!";
if (YankessScore > MetsScore)
cout << "Wiedizalem, Go Yanks!";
if (YankessScore == MetsScore)
cout << "Coz, rzeczywiscie byl remis!";
}
cout << "\nDzieki za informacje. \n";
return 0;
}
Ryan , wiem, że nie są to jakieś poważne kody programów, ale ja dopiero zaczynam przygodę z C++, więc napisanie czegoś takiego sprawia mi sporo trudności (nawet, gdy wzoruję się na książce)
Ale przecież ja nie piszę tego, żeby pokazać jaki jestem mastah a Ty jak mało potrafisz. Piszę to, by zachęcić do prób samodzielnego rozwiązywania problemów z kodem.
Ale do rzeczy. WinMain z czymś Ci się kojarzy? Szczególnie część “main”? WinMain, main i wmain to kilka dozwolonych funkcji głównych w kodzie C++ (zależy od kompilatora, środowiska docelowego i paru innych rzeczy). Skoro komunikat błędu mówi, że nie można znaleźć głównej funkcji (tzw. entry point) to mówi Ci to nic więcej jak to, że nie masz maina (lub jego wariacji - patrz wyżej). I co ja widzę w Twoim kodzie?
int amin()
Popatrz uważnie gdzie masz błąd. Poza tym wyrób sobie nawyk wyrównywania wcięć, np:
if (s == true)
{
for (;;)
{
if (buf == NULL)
{
break;
}
else
{
printf("b");
break;
}
}
}
else
{
printf("a");
}
a nie
if (s == true)
{
for (;;)
{
if (buf == NULL)
{
break;}
else
{
printf("b");
break;
}
}
}
else {
printf("a");
}