• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czemu kiedy kompiluje program na windows to program dziala a jak na linuxie to nie dziala?

Cloud VPS
0 głosów
924 wizyt
pytanie zadane 16 czerwca 2015 w C i C++ przez maarek222 Nowicjusz (210 p.)
w obydu przypadkach korzystam z gnu gcc compiler

4 odpowiedzi

+1 głos
odpowiedź 16 czerwca 2015 przez Adam Knie Mądrala (5,650 p.)

Jeśli o Linuxa chodzi:

Zamiast cin.sync() musisz zastosować:

//tu wczytanie danych ze strumienia za pomocą std::cin>>
std::cin.clear();
std::cin.ignore( 1000, '\n' );

(http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Obsluga-strumienia-wejsciowego/12)

komentarz 16 czerwca 2015 przez maarek222 Nowicjusz (210 p.)
działa dzięki
0 głosów
odpowiedź 16 czerwca 2015 przez draghan VIP (106,230 p.)
Co znaczy, że program "nie działa"? Co się dokładnie dzieje?
komentarz 16 czerwca 2015 przez maarek222 Nowicjusz (210 p.)
na windows moge normalnie po wpisaniu litery to wyskakuje bład a na linux po wpisaniu litery petla jest nieskonczona
komentarz 16 czerwca 2015 przez draghan VIP (106,230 p.)
Co możesz normalnie? :P

Miałem Ci podać artykuł, ale Adam Knie już mnie wyprzedził. Daj znać, czy działa. ;)
–1 głos
odpowiedź 16 czerwca 2015 przez Dorion300 Szeryf (90,250 p.)
edycja 16 czerwca 2015 przez Dorion300
Ponieważ system linux jest inaczej zbudowany i musisz na ten i na ten osobno kompilować. (musisz zmieniać kod)

Jeśli nie chcesz zmieniać kodu i programować "podwójnie" może cie zainteresuje jakiś język programowania wysokiego poziomu. np. Java, Python (a nawet C# jeśli zainstalujesz "mono")
–1 głos
odpowiedź 16 czerwca 2015 przez mrcnsct Nałogowiec (36,390 p.)
Może używasz windowsowych bibliotek?
komentarz 16 czerwca 2015 przez maarek222 Nowicjusz (210 p.)
#include <iostream>

using namespace std;

int main()
{
    int a;
    cout << "Wprowadz a: ";
    while(!(cin >> a))
    {
        cerr <<"Wprowadz a jeszcze raz: ";
        cin.clear();
        cin.sync();
    }
}
komentarz 16 czerwca 2015 przez mrcnsct Nałogowiec (36,390 p.)

Może coś jest nie tak z tym while. Na ideone się nie kompiluje, ale jak usuniesz nawiasy wokół cin już tak.

#include <iostream>

using namespace std;

int main()
{
    int a;
    cout << "Wprowadz a: ";
    while(!cin >> a)
    {
        cerr <<"Wprowadz a jeszcze raz: ";
        cin.clear();
        cin.sync();
    }
}

 

Podobne pytania

0 głosów
1 odpowiedź 210 wizyt
pytanie zadane 30 czerwca 2015 w C i C++ przez Pixel040 Gaduła (3,100 p.)
0 głosów
1 odpowiedź 383 wizyt
+1 głos
1 odpowiedź 495 wizyt

93,484 zapytań

142,417 odpowiedzi

322,763 komentarzy

62,895 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...