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 13:13
pierotofy
Hai dimenticato di allocare la memoria per il puntatore.
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
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