Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - FILE DI TESTO
Forum - C/C++ - FILE DI TESTO

Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 11:05
Domenica, 22/06/2008
Salve a tutti.
Ho iniziato a studiarmi il C++ ma ho un problemino con i file.

Ecco il codice

Codice sorgente - presumibilmente C++

  1. #include<iostream>
  2. #include<fstream>
  3.  
  4. using namespace std;
  5.  
  6. void main()
  7. {
  8.         fstream file;
  9.         char *inBuffer = "";
  10.         cout<< "Inserisci il testo" <<endl;
  11.         cin.getline( inBuffer , 200 );
  12.         file.open( "file.txt" , ios::out );
  13.         file.write( inBuffer , 200 );
  14.         file.close();
  15. }



Il problema è che mi da errore di violazione di accesso all'apertura del file.

Qualcuno saprebbe dirmi cosa succede???

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 11:38
Domenica, 22/06/2008
Succede che hai dichiarato semplicemente il puntatore ad una stringa, senza allocare lo spazio necessario. Devi scrivere

char *inBuffer = new char[200];

Inoltre, la scrittura su file e' bene che avvenga per l'effettiva lunghezza della stringa, e quindi devi usare

file.write( inBuffer, strlen(inBuffer) );

Quando lo spazio della stringa non serve piu', magari alla fine del programma, eliminalo con

delete [] inBuffer;

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 12:26
Domenica, 22/06/2008
Mea culpa:-|:-|

non mi ero accorto di essermi dimenticato la new.

Grazie mille!!!:k:

PM Quote