PDA

View Full Version : File, Dal C al C++


Gogeta ss4
18-09-2004, 14:51
Raga devo fare un programma con i file in c++, purtroppo io conosco le funzioni: fwrite(), fread(), fputs(), fgets();
Ecco in c++ come sono??
Non credo che rimangano uguali... E che parametri gli si passa??
Thanks

Mixmar
18-09-2004, 15:41
:confused: Le funzioni che tu citi, come tutte le altre, provengono da una libreria che importavi nei programmi C (stdio.h? sono un po' arrugginito... :idea: ): se continui ad importarla nei programmi C++, non dovrebbe cambiare moltissimo...

In sostanza, usale come le usavi prima, dovrebbero funzionare nella stessa maniera: se c'è una variazione nella sintassi, la troverai nel .h della libreria...

Gogeta ss4
18-09-2004, 15:43
a me servono per la iostream.h, non devo usare quelle del c ma del c++, devo fare così, me lo ha detto la prof(senza dirci quali sono, mi ha detto di cercarle)

anx721
18-09-2004, 15:51
La libreira è <iostream>, non <iostram.h> che è obsoleta. Datti una lettura alle funzioni presenti qui:

http://www.cppreference.com/cppio.html

Gogeta ss4
18-09-2004, 16:06
ma non ho scritto iostram...:confused: :confused:

Non ci capisco molto, non e ke potresti dirmele direttamente ?

Fenomeno85
18-09-2004, 17:34
clicchi sulla funzione che ti interessa ... e ti fa anche un esempio ... bel link ... già nei miei preferiti :)

~§~ Sempre E Solo Lei ~§~

Gogeta ss4
18-09-2004, 18:12
il problema e che non so qualè quella che mi interessa, ad esempio non so qualè l'equivalente di fwrite() in c++....

Mixmar
18-09-2004, 18:18
Penso che dovresti usare write(), per analogia col Java (lo so, non è un buon argomento :p ) dove la classe OutputStream ha un metodo write() molto simile, e poi perchè mi sembra l'unica funzione di scrittura presente a quel link... oltre a put(), ma funziona un carattere alla volta...

anx721
18-09-2004, 19:10
Altri due link a reference del c++:

http://www.cplusplus.com/ref/ (molto buono, da leggere perche spiega con esempi le funzioni di i/o)
http://www.dinkumware.com/manuals/reader.aspx?lib=cpp

Per scrivere su un file la cosa più semplice è utilizzare l'operatore <<


#include <iostream>
#include <fstream>

usin namespace std;

int main(){
//Creo uno stream di output sul file ciao.txt
//se il file non esiste viene creato; se esiste
//viene sovrascritto
ofstream ofile("ciao.txt");
ofile << "Cioooooo " << "mondo\n";
ofile << "inseirsco un numero: " << 3;
ofile << "\nstop.";
//dico allo stream di scrivere
ofile.flush();

//buffer da usare per la lettura
char line[256];

//apro uno stream di input sul file ciao.txt
ifstream ifile("ciao.txt");

//lego una riga, fino ad un massimo di 256 caratteri
ifile.getLine(line, 256);

//stampo la riga letta:
cout << line;

//leggo una riga con l'operatore cin
//(meno sicuro perche non specifichi la dimensione del buffer):
cin >> line;
//stampo la riga
cout << line;

return 0;
}

kk3z
18-09-2004, 20:24
//per ifstream/ofstream/iostream
#include <fstream>
//per string
#include <string>

using namespace std;

int main()
{
//per aprire un file in output
//ios::app per aggiungere alla fine
ofstream file("nomefile.txt, ios::app);

//scrivi una linea nel file e un "a capo"
file<<"Ciao"<<endl;

//chiudi l'ofstream del file
file.close();


//per aprire un file in input
ifstream file("nomefile.txt);

//se vuoi usare char:
char linea[50];
file.getline(linea, 50);

//se vuoi usare la stringa del c++
string str;
getline(file, str);

//chiudi l'ifstream del file
file.close();

return 0;
}

in pratica nel c++ non è una funzione, è una dichiarazione dell'ofstream/ifstream file.

oltre a ios::app ci sono altre opzioni - sovrascrivi, non creare se non esiste, e così via

spero di essere stato chiaro :)

Gogeta ss4
18-09-2004, 20:41
che casino...:(
Grazie a tutti ;)