Newsgroup: it.comp.lang.c++
Titolo: Principiantissimo: INPUT

Scrivo sotto MS-DOS col compilatore della Borland.
Honecessita di ricevere come input dall'utente stringhe contenenti
spazi, ma se uso l'istruzione cin >> stringa; mi riceve solo fino al 
primo spazio, come faccio?
Grazie mille
Jimmy


Hai varie alternative. Ad esempio, il metodo cin.getline().
EMG


Ehm... non sono molto esperto.... mi puoi spiegare come si usa
esattamente oppure indicare dove posso trovare documentazione 
che riguardi queste cose elementari??
(Nei tutorial piu famosi queste cose non sono spiegate)
Jimmy

 wrote in message
news:3b4039e5...@news.libero.it...

Puoi usare  std::cin.getline() nella versione che si adatta
meglio ai tuoi dati.
HTH

 (Nei tutorial piu famosi queste cose non sono spiegate)
Quali sarebbero?
EMG

Quali sarebbero?
Tipo quello di Paolo Marotta o di Bruce Eckel..... di getline()
nemmeno l'ombra, almeno nei primi capitoli (li cerco li visto che son
cose assolutamente basilari).
Grazie ancora cmq
Jimmy

Altro problema.... ho necessita che questi sedicenti std::string
diventino normali array char per poi poter usare funzioni che
necessitano appunto per forza di array di char.
Se mi indicate anche documentazione invece di risposte dirette va bene
lo stesso
Grazie ancora
Jimmy

 cose assolutamente basilari).
In Thinking in C++ la prima citazione di std::getline() è presente nel
paragrafo "Reading and writing files" del Capitolo 2 ma poi è utilizzata
in un mare di esempi. Forse devi semplicemente studiarlo meglio. :-)
EMG


Guardati il metodo c_str() della std::string.
EMG

da verificare)?
L'hobby di prendersela contro la documentazione della Borland é
praticato infatti da molti. Io non sono affatto della stessa idea,
anche perché ho sempre trovato tutto ciò che mi serviva.
Non dimentichiamoci poi che nel BCB5 una documentazione molto
dettagliata sulla libreria standard é inclusa direttamente nell'help
del compilatore.
Il Ghenio
-----
ZIO : Fun and games are over with. Anyone who dares
get in my way shall perish.
DIO ci salvi dagli ocx del Viral Basic.
-----

Guardati il metodo c_str() della std::string.
Grazie dell'aiuto... ho risolto i miei problemi... mi manca pero' un
ultima cosa... come faccio a convertire invece un array di char
contenente solo cifre in un int (oppure una std::string in un int)?
Grazie mille
Jimmy

 contenente solo cifre in un int (oppure una std::string in un int)?
Questa funzione che ho scritto dovrebbe andare:
/* Converte una stringa in un intero */
int strtoint (string s) {
int x = 1, tot = 0;
const char* ch = s.c_str();
        for (int i = 0; i < s.size(); i++) {
                tot += (ch[s.size() - i - 1] - 48) * x;
                x *= 10;
        };
        return tot;
};
ciao
Luigi

 /* Converte una stringa in un intero */
solo su sitemi ASCII.... tanto per dire :)

> solo su sitemi ASCII.... tanto per dire :)
Beh, a me serviva quella e ho l'ho scritta, se si adatta alle esigenze del
nostro amico bene, anche perché non so quali sarebbero altri sistemi, quindi
non so come implementarla.
Tu ne conosci? Forse intendi l'ANSI?
Ciao

 sistemi, quindi non so come implementarla.
sistemi generici e portabili, sono usare sprintf, o le classi <sstream>
un sistema non ascii e' l'ebcdic dei sistemi IBM