String i text

0

Czesc...

Mam problem niewiem jak zapisac text wpisywany przez uzytkownika do stringa.
Tyle ze ten text posiada biale znaki. Potrzebuje go do stinga zapisac, a nie do pliku. Macie jakis pomysł ?

Chodzi mi oczywiscie o C++ i najlepiej zeby dzialalo pod Linuxem.

THX.

0
char znak;
char napis[10];
int i=0;

while(znak!=13)
{
znak=getc();
napis[i]=znak;
i++;
}

bedzie wczytywac znaki do momentu naciesniecia klawisza ENTER

0

Z tego co wiem to zarówno robienie tego przez funkcję scanf (stdio.h) oraz przez strumień cin (iostream.h) powinno uwzględniać białe znaki :) więc nie wiem po co tworzyć pętlę... chyba że źle rozumiem autora posta

0

to najwyrazniej malo wiesz ;)

istream& get(char* gdzie, int ile, char ogran='\n');

Pozwala na wczytanie maksymalnie ile bajtów do tablicy o adresie gdzie. Znak ogran to znak, po którego napotkaniu wczytywanie jest przerywane.

istream& getline(char* gdzie, int ile, char ogran='\n');

Działa jak poprzednia funkcja, ale dodatkowo wyjmuje też sam ogranicznik ze strumienia.

dla zwyklego C jest chyba zet cos takiego jak getline()

0

Z tego co wiem to zarówno robienie tego przez funkcję scanf (stdio.h) oraz przez strumień cin (iostream.h) powinno uwzględniać białe znaki :) więc nie wiem po co tworzyć pętlę... chyba że źle rozumiem autora posta

Widac nie wiesz... Bo zarowno fscanf() jak i cin nie pobierze bialych znakow bedacych separatorami.

A dwa: czy ja pisalem to dla pliku???

0
string line;
getline(cin,line);

Po tej sekwencji w stringu line znajdzie sie caly tekst wprowadzony przez uzytkownika az do wcisnietego entera. getline() to globalna funkcja, nie bedaca czlonkiem klasy istream.
Nie wiem tylko czy to zadziala pod linuchem [wstyd]

0

cin.get(char* tablica_znakowa_do_zapisu,int liczba_znakow);

1 użytkowników online, w tym zalogowanych: 0, gości: 1