Jeśli chodzi o twoje pytanie, VS będzie w porządku na twoim kursie, chociaż nadal jestem zaskoczony oryginalną wersją tego kodu prowadzącego.
Jednak naprawdę warto poświęcić trochę czasu na zrozumienie, co zrobiły wszystkie Twoje zmiany i dlaczego rozwiązały Twój problem. Być może już to zrobiłeś - to nie wrażenie, jakie wywarło na mnie zdanie
To, co wymyśliłem, zadziała po pewnym googlowaniu
- gdy pojawi się błąd kompilacji lub ostrzeżenie, przeczytaj go i spróbuj go zrozumieć.
- jeśli nie rozumiesz błędu - i jest to normalne, z pewnością podczas nauki - włamanie się do kodu, dopóki nie zadziała, jest całkowicie w porządku. Przynajmniej czasami jest to szybsze, a wiedza, że zrobiłeś postęp, jest własną nagrodą.
- jeśli włamanie się do kodu przy użyciu Internetu nie jest możliwe, musisz po prostu przestudiować komunikat o błędzie. Włączenie wszystkich błędów i ostrzeżeń kompilatora oraz wypróbowanie wielu kompilatorów może pomóc - nawet jeśli wszystkie zawiodą, komunikaty mogą być bardziej przydatne. (Często uważam, że clang ma przydatne błędy, a godbolt.org jest bardzo pomocny).
jeśli włamanie się do kodu nie rozwiąże problemu, powinieneś spróbować zrozumieć, dlaczego . Teraz możesz zobaczyć, co zmieniłeś, spojrzeć na pierwotny błąd i spróbować zrozumieć, dlaczego zmiany go naprawiły. Jeśli wprowadziłeś wiele zmian, czy wszystkie były naprawdę konieczne? Czy rozumiesz, co oni wszyscy zrobili i dlaczego?
Jeśli to zrobisz, możesz szybciej rozwiązać następny powiązany problem , zamiast ponownie przechodzić przez cały proces prób i błędów. Możesz nawet napisać lepszy kod, który pozwoli uniknąć problemu.
Jest to część, która faktycznie stanowi uczenie się i dlatego staram się to rozwiązać.
Ważną poprawką była zmiana linii
include <iostream>
main()
do
#include <iostream>
int main()
ponieważ te pierwsze nie są legalne w C ++. Jeśli twój wykładowca naprawdę napisał dokładnie to, a ty jakoś nie pomyliłeś się, to nie mam pojęcia, dlaczego ich przykład zadziałał.
Rzeczy specyficzne dla Visual Studio to prekompilowany nagłówek, jak opisano w odpowiedzi Gabriela.
Ale pozostała zmiana jest zasadniczo kosmetyczna. Zastępowanie:
using namespace std;
z
using std::cout;
Nie wpływa na nic w twoim kodzie, a tylko na używanie
std::cout << "Hello world! :-)";
(przy braku using
) działałoby równie dobrze.