Niedawno zacząłem uczyć się C++. Wcześniej działałem głównie w PHP, korzystając głównie z Notepad++, a później z Sublime Text. Ucząc się C++ nie chciałem za bardzo przesiadać się na inne oprogramowanie, więc porzuciłem CodeBlocks. Zainstalowałem u siebie na komputerze (z Windows 10) MinGW, "podpiąłem" kompilator G++ pod Sublime Text... i tu zaczęły się problemy...
Przykładowo w 7 odc. kursu pana Zelenta: https://www.youtube.com/watch?v=h2Taf16gQDI&t=723s
Jest program, który odczytuje dane z pliku i wypisuje je na ekranie (około 12 minuty filmu jest pokazane jaki powinien być efekt).
Napisałem ten program w Sublime, skompilowałem go i program po uruchomieniu w ułamku sekundy wyłącza się. Po otworzeniu pliku main.cpp w CodeBlocks i uruchomieniu przez F9 program uruchamia się, wyświetla zawartość pliku i (tak jak to zamierzyłem) czeka na wprowadzenie klawisza Enter, po czym normalnie kończy pracę.
Czy ktoś z Was próbował działać w C++ za pomocą Sublime Text mające tego typu problemy? Dodam, że w innych programach z kursu, po kompilacji poprzez MinGW też zdarzają się pewne problemy...
EDIT (27.04.2017 23:29): Dodaję cały kod programu:
http://wklej.org/id/3099248/
Zarówno Sublime, jak i serwis wklej.org nie pokolorował mi składni stringa linia. CodeBlocks zrobił to, ale na zielono, a nie tak int czy float na niebiesko. Myślę, że w tym może tkwić błąd.
cout << "test" << endl;
getchar();
Powyższe służy tylko i wyłącznie do testu czy program działa do momentu deklaracji zmiennej linia.
EDIT (01.05.2017 17:05): Powyższe nie jest kwestią zastosowania getchar(), bądź niezastosowania go. Inne programy też nie działają mi poprawnie poza CodeBlocks.
Przykład z ciągiem liczb Fibonacciego (https://youtu.be/Rt1HnMdzINo?list=PLOYHgt8dIdoxx0Y5wzs7CFpmBzb40PaDo):
[serwis wklej.org ma w tym momencie problem z serwerem, więc wrzucam tutaj]
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <stdio.h>
using namespace std;
long double fibonacci[100000];
int n;
int main() {
cout << "Ile liczb Fibonacciego mam wyznaczyc? ";
cin >> n;
fibonacci[0] = 1;
fibonacci[1] = 1;
for (int i=2; i<n; i++) {
fibonacci[i] = fibonacci[i-1] + fibonacci[i-2];
}
cout << setprecision(10000);
for (int i=0; i<n; i++) {
cout << endl << "nr " << i+1 << ": " << fibonacci[i];
}
getchar(); getchar();
return 0;
}
Powyższy kod wykonuje się poprawnie po potraktowaniu go F9 w C::B. Program go kompiluje, uruchamia i po wpisaniu liczby np. 21000 wszystko śmiga tak jak należy.
Tymczasem w Sublime Text po uruchomieniu CRTL + B kompilator wykonuje pracę w 0.9s i...
Po wpisaniu ile liczb Fibonacciego ma program wyznaczyć otrzymuję wyniki w stylu:
nr 1: -0
nr 2: -0
nr 3: -0
nr 4: -2
nr 5: -1.4916681462400413e-154
nr 6: -0
nr 7: -231584178474632390000... i sporo zer
kolejne liczny wyglądają podobnie...
Czy ktoś ma jakiś pomysł w czym tkwi problem?
Dodam tylko, że specjalnie na innym komputerze zainstalowałem Sublime i MinGW, po uruchomieniu tam powyższych programów problem jest taki sam.