Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zapisywanie tekstu do pliku

Ostatnio zmodyfikowano 2009-06-19 20:48
Autor Wiadomość
malan
» 2009-06-19 14:21:07
Jeśli chcesz używać 'getline', a wcześniej używałeś 'cin' musisz wyczyścić bufor, bo inaczej program uzna, że podałeś już jakieś dane i przeskoczy dalej...

//Edit:
Przykładowy program - skompiluj sobie z funkcją 'fflush(stdin);', a potem bez niej i zobacz różnicę ;).

C/C++
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    string Dane, Dane1, Dane2;
    cout << "Podaj dane (dane wczytywane przez 'cin'): ";
    cin >> Dane;
    fflush( stdin );
    cout << "\nPodaj dane2 (dane wczytywane przez 'getline'): ";
    getline( cin, Dane1 );
    cout << "\nPodaj dane3 (dane wczytywane przez 'getline'): ";
    getline( cin, Dane2 );
    cout << "\ndane: " << Dane << endl;
    cout << "dane2: " << Dane1 << endl;
    cout << "dane3: " << Dane2 << endl;
    getchar();
    return 0;
}
P-7803
Haker123
Temat założony przez niniejszego użytkownika
» 2009-06-20 06:33:25
Czyli jak bym nie wyczyscil to nie mglbym nic przypisac do Dane1 chociaz to jest dla mnie dziwne ;/ bo wkoncu jest inna nazwa wiec nie powinno byc czegos takiego ;/ no ale dopiero sie ucze wec pewnie bedzie wiecej takich sytuacji :P

a tak sie jeszcze zapytam "cin.sync()" to funkcja z c++ a "fflush(stdin)" to c??
P-7815
WunM
» 2009-06-20 10:43:59
C nie jest obiektowy więc cin.sync() napewno jest z C++.
P-7816
Haker123
Temat założony przez niniejszego użytkownika
» 2009-06-21 05:07:26
Wielkie dzieki za pomoc ;]
P-7868
manfred
» 2009-06-19 20:48:44
Ta, nie ma to jak używać funkcji C, która może nie działać z powodu tego, że wcale bufora czyścić nie musi i dlatego, że nie ma pewności, że cokolwiek da przy strumieniach. Use cin.sync() instead.
P-18975
1 2 3 « 4 »
Poprzednia strona Strona 4 z 4