Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

string:cudno ucitavanje

[es] :: C/C++ programiranje :: string:cudno ucitavanje

[ Pregleda: 2609 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

marko000
marko vucinic
Beograd

Član broj: 6501
Poruke: 63
*.eunet.yu



Profil

icon string:cudno ucitavanje18.05.2003. u 11:03 - pre 231 meseci
Napisao sam sasvim jenostavnu klasu za string za unosom,ispisom i jos nekim mogucnostima..ali desava se da sa ulaza program vidi jedino rec do SPACE karaktera i to je to, tj. ako unesem string "c++ primer" u char *niz koji mi sluzi za smestanje znakovnog niza upisuje se samo prva rec do SPACE-a,tj. "c++"..
Stvarno ne mogu da nadjem objasnjenje zasto je to tako..

POMOC?
 
Odgovor na temu

Časlav Ilić
Braunšvajg, Nemačka

Član broj: 4945
Poruke: 565
*.beg.sezampro.yu



+27 Profil

icon Re: string:cudno ucitavanje18.05.2003. u 13:07 - pre 231 meseci
Čitanje staje zato što je razmak podrazumevani razdvajač unosa.

Najlakše, ali najmanje fleksibilno, je da smatraš da je kraj linije razdvajač. U tom slučaju, možeš da učitaš string kao:

Code:

const int SIZE = 1024;
char buffer[SIZE];
cin.getline(buff, SIZE);


ili lepše:

Code:

#include <string>
...
std::string s;
getline(cin, s);


(usput, nadam se da praviš tu klasu kao neku vežbu, pošto već imaš standardnu klasu std::string).

Pošto se ovo pitanje često postavlja, ne bi bilo loše da se predloži neko opštije rešenje. Ono što ja trenutno koristim je šablonski efektor za čitanje citiranih stringova, sa sledećim mogućnostima:

Code:

ST str;

// Use default quotes.
cin >> quoted<ST>(str);

// Use second param as starting and closing quote.
cin >> quoted<ST>(str, "'");

// Provide separate starting and closing qoutes.
cin >> quoted<ST>(str, "[", "]");

// Define default quotes, same starting and closing quote.
defaultQuotes::set("\"");

// Define default quotes, different starting and closing quotes.
defaultQuotes::set("[", "]");


Stringolika klasa ST mora da ima definisan operator = za tip const char*. Naravno, ako se na ulazu nalazi samo reč bez navodnika, podrazumeva se da čini ceo string.

Kôd je okačen uz poruku (fajl pripada jednoj mojoj servisnoj bibliotekici, i sadrži još neke efektore).
Prikačeni fajlovi
 
Odgovor na temu

[es] :: C/C++ programiranje :: string:cudno ucitavanje

[ Pregleda: 2609 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.