Problem z kompilacją


(mich@l2312) #1

Otóż uczę się C++ i w kursie był taki przykład:

// Static - zmienne statyczne

#include 

#include 


void Funkcja()

{

	static int nLicznik = 0;

	++nLicznik;

	std::cout << "Funkcje wywolano po raz " << nLicznik << std::endl;

}

void main()

{

	std::string strWybor;

	do

	{

		Funkcja();

		std::cout << "Wpisz 'q', aby zakonczyc: ";

		std::cin >> strWybor;

	} 

	while (strWybor != "q");

}

W Dev-C++ się skompilował i uruchomił a w Visual C++ 2008 EE się nie skompilował. Pisało że są dwa błędy: w std::string i w while(strWybor != "q"). Który program ma rację: Dev-C++ czy Visual C++?


(Sawyer47) #2

Na pewno nie void main tylko int main oraz musisz dołączyć nagłówek .


(mich@l2312) #3

Dzięki.


(D Kielbania) #4

popraw też "void main()" na "int main()", main musi coś zwrócić (dziwię się, że VC++ to przepuścił), pojedyńcze litery nie zamykamy w cudzysłowach a w apostrofie (często kompilator też się pluje o to).


(Fiołek) #5

:wink:

Nie. Jeśli zamkniesz je w cudzysłowie będą C-Stringiem, jeśli w apostrofie to będą zwykłym znakiem ASCII(char). Żadne nie jest błędem, wszystko zależy od użycia(tu użycie jest prawidłowe, porównuje std::string z const char*, odpowiednik strcmp).