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

Tablica w string.h (C++)

Ostatnio zmodyfikowano 2013-04-20 21:24
Autor Wiadomość
martar1990
Temat założony przez niniejszego użytkownika
Tablica w string.h (C++)
» 2013-04-20 12:17:24
Witam,

mam problem z tablicą do której chcę wczytać jakiegoś stringa.
tak wygląda kod:
C/C++
char tab1[ 161 ];
char tab2[ 161 ];

cin >> tab1;

memcpy( tab2, tab1, 50 );
cout << tab2 << "\n";

dlaczego przy wpisywaniu do tab1 zdanie ucinane jest na pierwszej spacji? jak mogę to obejść, aby mieć wszystko??

pozdrawiam
P-80871
Hipochondryk
» 2013-04-20 12:43:12
ponieważ standardowy strumien wczytujący(cin) wczytuje tylko do napotkania pierwszego białego znaku - spacja, enter.
Użyj stringów i funkcji getline, z nimi o wiele lepiej wygląda współpraca.
C/C++
// przykladowe uzycie getline.


string a;
getline( cin, a );
// wcyztuje linie do entera do stringu a;
getline( cin, a, '.' );
//wczytuje do stringu a wszelkie znaki aż do napotkania kropki.

jeśli koniecznie potrzebujesz cstringu (tablica char)
to mozesz następnie użyć funkcji c_str();
C/C++
string a;
a.c_str();
zwraca ona wskaźnik do cstringu z zawartością stringa a.
P-80874
kubek3898
» 2013-04-20 21:20:07
Możesz też nadal wykorzystać typ char, lecz musisz używać getline();

C/C++
char zmienna[ 80 ];

cin.getline( zmienna, 80 );

@down

Faktycznie, mój błąd, jestem przyzwyczajony do używania getline dla stringu, stąd pomyłka.
P-80921
pekfos
» 2013-04-20 21:24:59
C/C++
getline( zmienna, 80 );
C/C++
cin.getline( zmienna, 80 );
P-80922
« 1 »
  Strona 1 z 1