Oppure

Loading
30/08/09 14:26
Chris_C++
Nuovo quesito per voi sui file..
Adesso devo inserire una frase in un programma, vorrei che la frase venisse scritta per intero (infatti adesso strive solo la prima parola..) e che, se riapro il programma, ed inserisco un altro testo, quest'ultimo, venga immesso di seguito al precedente, invece di cancellarlo come fa ora.. Questo è quello a cui sono arrivato..

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
const char indirizzo[55]="C:\Documents and Settings\Chris\Desktop\Ciao.txt";
int main()
{
char risp;
string testo;
ofstream ciao;
ciao.open(indirizzo, ios::out);
do{
cout<<"Inserisci il testo"<<endl;
cin>>testo;
ciao<<testo<<endl;
cout<<"Vuoi continuare? S/N"<<endl;
cin>>risp;
}while((risp=='S')||(risp=='s'));
ciao.close();
system("pause";);
}
aaa
30/08/09 14:47
steve__92
Postato originariamente da Chris_C++:

Nuovo quesito per voi sui file..
Adesso devo inserire una frase in un programma, vorrei che la frase venisse scritta per intero (infatti adesso strive solo la prima parola..) e che, se riapro il programma, ed inserisco un altro testo, quest'ultimo, venga immesso di seguito al precedente, invece di cancellarlo come fa ora.. Questo è quello a cui sono arrivato..

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
const char indirizzo[55]="C:\Documents and Settings\Chris\Desktop\Ciao.txt";
int main()
{
char risp;
string testo;
ofstream ciao;
ciao.open(indirizzo, ios::out);
do{
cout<<"Inserisci il testo"<<endl;
cin>>testo;
ciao<<testo<<endl;
cout<<"Vuoi continuare? S/N"<<endl;
cin>>risp;
}while((risp=='S')||(risp=='s'));
ciao.close();
system("pause";);
}


se vuoi scrivere una frase non devi usare cout (che si ferma alla prima parola) ma devi usare cin.getline(array, int lunghezza); cplusplus.com/reference/iostream/istream/getline/
nel tuo caso potrebbe andare
cin.getline(testo, 100);
però devi sostituire string testo; con
char testo[100];


per non cancellare quello che c'è già scritto ti rimando a questo pierotofy.it/pages/guide_tutorials/CPlusPlus/OfStream/

Ultima modifica effettuata da steve__92 30/08/09 15:03
aaa
30/08/09 16:29
manvb.net
Postato originariamente da steve__92:
se vuoi scrivere una frase non devi usare cout (che si ferma alla prima parola) ma devi usare cin.getline(array, int lunghezza);


Casomai cin...
aaa
30/08/09 19:30
Chris_C++
Grazie dell'aiuto..
Ma adesso ho un altro problema.. Dopo che inserisco il primo primo testo il programma mi chide: Vuoi continuare? io dico sì e invece di chiedermi di inserire il nuovo testo, mi chiede vuoi continuare?

Qui c'è il programma corretto:
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
const char indirizzo[55]="C:\Documents and Settings\Chris\Desktop\Ciao.txt";
int main()
{
char risp;
char testo[50];
ofstream ciao;
ciao.open(indirizzo, ios::app);
do{
cout<<"Inserisci il testo"<<endl;
cin.getline (testo,50);
ciao<<testo<<endl;
cout<<"Vuoi continuare? S/N"<<endl;
cin>>risp;
}while((risp=='S')||(risp=='s'));
ciao.close();
system("pause";);
}
aaa
30/08/09 19:42
manvb.net
Postato originariamente da Chris_C++:

Grazie dell'aiuto..
Ma adesso ho un altro problema.. Dopo che inserisco il primo primo testo il programma mi chide: Vuoi continuare? io dico sì e invece di chiedermi di inserire il nuovo testo, mi chiede vuoi continuare?

Qui c'è il programma corretto:
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
const char indirizzo[55]="C:\Documents and Settings\Chris\Desktop\Ciao.txt";
int main()
{
char risp;
char testo[50];
ofstream ciao;
ciao.open(indirizzo, ios::app);
do{
cout<<"Inserisci il testo"<<endl;
cin.getline (testo,50);
ciao<<testo<<endl;
cout<<"Vuoi continuare? S/N"<<endl;
cin>>risp;
}while((risp=='S')||(risp=='s'));
ciao.close();
system("pause";);
}


metti
cin.ignore();
prima di
}while((risp=='S')||(risp=='s'));
aaa
31/08/09 5:33
Chris_C++
Grazie mille.. adesso gira alla perfezione e, in esecuzione, fa ciò per cui era destinato:-) Quindi grazie..
aaa
31/08/09 11:55
manvb.net
Di niente!:k:
aaa