PDA

Visualizza la versione completa : [C++] Input classi string con spazi


akiross
20-04-2003, 20:48
Ciao
come posso ottenere l'input da uno stream qualsiasi (mi interessa soprattutto cin) di una stringa con spazi, che andra' messa in un oggetto string [STL]?

Cioe', avuto un oggetto del tipo string, come posso riceverne l'input se la stringa ha gli spazi?

io ho provato con le normali cin, ma non riesco, quando ho gli spazi va tutto a pu****e. Ho visto che con get, getline non si puo', dato che hanno un char * come buffer, e non supprotano l'oggetto string (o cosi' sembra)

Se possibile vorrei un metodo che funzionasse anche con uno stream qualsiasi, diverso da cin.

grazie
ciao

debbelandia
20-04-2003, 21:09
#include <conio.h>

int main(void)
{

char buffer[83];

char *t;

t = cgets(buffer);

cprintf("%s",t);

getch();

return 0;
}

akiross
20-04-2003, 21:33
ummm non si riesce a fare con l'ANSI? la conio e' solo per M$ DOS o Win

io faccio anche per linux

grazie comunque
ciao

debbelandia
20-04-2003, 21:45
Dimmi se la libreria bios.h è standard, se lo è ti faccio uan funzioncina di acquissizione...

debbelandia
20-04-2003, 21:54
Ho guardato io, mi dispiace io non lavoro in linux e non so risolverti il problem.

akiross
20-04-2003, 22:47
ah, ok
grazie comunque per l'interessamento.

grazie
ciao

r0x
21-04-2003, 01:32
::getline. Funziona come istream::getline ma invece di char* prende un riferimento a string:



getline( istream&, string&, char = '\n' );


(In realta` e` un template ma questo e` l`uso piu` comune).

debbelandia .. finiscila con il tuo codice paleolitico.

debbelandia
21-04-2003, 01:58
e perchè sarebbe paleolitico?

akiross
21-04-2003, 02:09
ah, ok r0x
nul manuale non avevo questo riferimento, ma avevo getline a sole stringe C.

Grazie
ciao

akiross
27-04-2003, 14:14
ehmmm
ho provato con

getline(cin, str);

ma decisamente non funziona...
appena metto qualcosa (anche senza spazi), il programma inizia un bel ciclo infinto....
come quando si inserisce un carattere alla richiesta:
cin >> (int)val;

o almeno, a me va in ciclo infinto

Che fo?
Grazie
ciao

Loading