Oppure

Loading
15/06/08 10:35
alex2thebest
non riesco a capire che problema ci sia in questo codice, nel debug non segnala nessun errore ma nell'esecuzione restituisce errore!!!

ecco il sorgente:

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>

main()
{
      char *carattere;
      cout << "Inserisci testo da salvare" << endl;
      cin >> carattere;
      fstream file;
      file.open("C:\ciao.txt",ios::out);
      file << carattere;
      file.close();
      _sleep(2000);
return 0;
}


edit by netarrow: sistemato il titolo
Ultima modifica effettuata da netarrow 15/06/08 17:02
aaa
15/06/08 11:44
Amarath
Che errore ti fa?

Quelli possibili sono per mancanza di file o file gia aperto da qualche altro programma.

Cmq non istanziare un oggetto fstream, ma visto che è un file di out, istanzia ofstream e aprilo in modalita trunc
aaa
15/06/08 12:45
alex2thebest
l'errore è:

img246.imageshack.us/img246/8133/…

cmq puoi farmi qualche esempio... che nn ho capito molto di ciò che hai detto!
aaa
15/06/08 13:13
pierotofy
Hai dimenticato di allocare la memoria per il puntatore.
Il mio blog: piero.dev
15/06/08 13:14
FHF93
Secondo me sbagli nel "cinnare" un puntatore a char
aaa
15/06/08 16:59
netarrow
visto che stai usando C++ e non C non vedo perchè non usare la classe string.
Ad ogni modo confermo, se vuoi usare i puntatori a carattere devi allocare il puntatore o dinamicamente con malloc, o anzi new visto che stai usando C++, o staticamente dichiarando un array (che è un puntatore al suo primo elemento)
Ultima modifica effettuata da netarrow 15/06/08 17:00
aaa
15/06/08 18:28
gantonio
Puoi anche usare una stringa C, ma deve essere allocata (anche staticamente)

int main() 
{ 
    char testo[200];
    
	cout << "Inserisci testo da salvare" << endl; 
    cin.getline(testo, 200, '\n'); 

    fstream file; 
    file.open("C:\ciao.txt",ios::out); 
    file << testo; 
    file.close(); 
    
	return 0; 
}
aaa
17/06/08 14:22
Amarath
Per usare il puntatore a char

int main()
{
    char buffer[200];
    
    cout << "Inserisci testo da salvare" << endl;
    cin.getline(buffer, 200); //Si ferma da solo quando gli passa /n .. la differenza con get è che getline lo consuma e get lo lascia nel buffer

    char* stringa = new char[strlen(buffer)+1];
    strcpy(buffer,stringa);

    fstream file;       //io non capisco perchè non istanziare l'oggetto appropriato...
    file.open("C:\ciao.txt",ios::out);
    file << stringa;
    file.close();
    
    return 0;
} 
Ultima modifica effettuata da Amarath 18/06/08 5:40
aaa