Ominide 690 punti

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
string line;
ifstream myfile("example.txt");
if (myfile.is_open()){
cout<<"Il riferimento di myfile: "<<myfile<<endl;
cout<<"Il contenuto di myfile (linea per linea):"<<endl;
while(getline(myfile,line)){
cout<<line<<endl;
cout<<myfile<<endl;
}
cout<<"... ora myfile vale: "<<myfile<<endl;
myfile.close();
}else{
//cout<<"Valore di myfile"<<myfile<<endl;
cout<<"Errore nell'apertura del file."<<endl;
}
cout<<endl;
char* linea;
linea=new char[100];

cout<<"Sto leggendo linee tramite 'cin':"<<endl;
cout<<"(invio termina una linea, ctrl+z conclude la lettura)" <<endl;
cout<<"della prima riga letta viene mostrato il riferimento restituito da " ;
cout<<"'getline' non il contenuto"<<endl;
cout<<cin.getline(linea,100)<<endl;
while(cin.getline(linea,100)){
// ctrl+z termina l'input, solo se fornito in prima posizione
// in posizioni diversa dalla prima rende nullo l'input che precede
cout<<linea<<endl;
}
cout<<"cin.getline() ha restituito false"<<endl;
cout<<endl<<"Rileggo il file linea per linea ..."<<endl;
myfile.open("example.txt",ios::in);
while(getline(myfile,line)){
cout<<line<<endl;
}
myfile.close();
cout<<"Premi invio per continuare...";
// cin.ignore(); non funziona a causa di ctrl+z che chiude lo stream di input
// cin e lo lascia chiuso: sembra che clear() lo ripristini nel senso che lo
// riapre
cin.clear();
char s=cin.get();
cout<<endl<<"Rileggo il file parola per parola "<<endl;
myfile.open("example.txt",ios::in);
char parola[20];
while(myfile>>parola){
cout<<parola<<endl;
}
cout<<"...file di input terminato!"<<endl;
myfile.close();
//delete myfile;
ofstream myfile2;
cout<<"Leggo una linea da tastiera e la appendo al mio file ";
myfile2.open("example.txt",ios::ate|ios::app);
myfile2<<"questa e' una nuova linea"<<endl;
cin.getline(linea, 100);
myfile2<<linea<<endl;
myfile2.close();
}

Hai bisogno di aiuto in Informatica?
Trova il tuo insegnante su Skuola.net | Ripetizioni
Registrati via email