BuRn
12-07-2005, 23:23
Avrei bisogno di un piccolo aiuto da qualcuno più esperto di me riguardo un problema che sto avendo con delle stringhe.
Stavo facendo un programma (per esercitarmi) che doveva stampare su schermo e su un file. Poichè l'output di volta in volta cambiava volevo poter cambiare il nome del file senza toccare il codice. Devo quindi definire una stringa in cui vado a scrivere con cin da tastiera il nome che voglio assegnare al file. In un programma che avevo fatto in precedenza ricordo di aver fatto una cosa del genere
#include <iostream>
#include <fstream>
using namespace std;
main()
{
char* nome;
cout << "?> ";
cin >> nome;
cout << nome << endl;
ofstream destination (nome);
cout << nome << endl;
destination << nome << endl;
}
Solo che nn va, crasha.
Se però modifico così il codice:
#include <iostream>
#include <fstream>
using namespace std;
main()
{
string quellochevuoi;
char* nome;
cout << "?> ";
cin >> nome;
cout << nome << endl;
ofstream destination (nome);
cout << nome << endl;
destination << nome << endl;
}
funziona... Non capisco perchè dichiarando un'altra stringa con string smetta di crashare.
Qualcuno mi illumina?
Stavo facendo un programma (per esercitarmi) che doveva stampare su schermo e su un file. Poichè l'output di volta in volta cambiava volevo poter cambiare il nome del file senza toccare il codice. Devo quindi definire una stringa in cui vado a scrivere con cin da tastiera il nome che voglio assegnare al file. In un programma che avevo fatto in precedenza ricordo di aver fatto una cosa del genere
#include <iostream>
#include <fstream>
using namespace std;
main()
{
char* nome;
cout << "?> ";
cin >> nome;
cout << nome << endl;
ofstream destination (nome);
cout << nome << endl;
destination << nome << endl;
}
Solo che nn va, crasha.
Se però modifico così il codice:
#include <iostream>
#include <fstream>
using namespace std;
main()
{
string quellochevuoi;
char* nome;
cout << "?> ";
cin >> nome;
cout << nome << endl;
ofstream destination (nome);
cout << nome << endl;
destination << nome << endl;
}
funziona... Non capisco perchè dichiarando un'altra stringa con string smetta di crashare.
Qualcuno mi illumina?