Questo è piuttosto scarno, destinate a ottenere solo il programma di andare in modo da poter eseguire il debug le parti più complesse:Perché il mio programma non può aprire un file durante il debugging in VS2013?
//open file
cout << "Input File Name: ";
string fileName;
cin >> fileName;
ifstream file;
file.open(fileName, ios_base::in);
if (!(file.good())){
cout << "File Open Error\n";
return 0;
}
Il programma viene compilato bene. Se eseguo l'eseguibile di debug da \ Projects \ [questo progetto] \ Debug \ [programma] .exe semplicemente facendo doppio clic o navigando lì tramite cmd, si aprirà il file (che è memorizzato nella stessa directory) e il resto del programma canticchia bene (fino a quando non arriva alle parti buggy che in realtà voglio fare il debug, comunque).
Tuttavia, se provo a "Avviare debugging" da VS2013, quanto sopra non riesce; stampa l'errore e si chiude immediatamente. La finestra di cmd in cui il programma si sta eseguendo quando in modalità di debug mostra chiaramente la directory nell'area del titolo, ed è sicuramente la stessa directory, ma suppongo che stia cercando il file da qualche altra parte. Ho provato a copiarlo anche con la radice del volume, nessuna gioia lì. Sono certo che questo ha funzionato bene nelle versioni precedenti di VS, ma forse sto solo facendo il brainstart qui. Qualche idea?
La directory di lavoro predefinita per l'avvio di un programma in esecuzione sotto il debugger di Visual Studio è la directory * project * (dove si trova il file vcprojx). Il titolo che vedi è il percorso dell'eseguibile; non la directory di lavoro. Specificare un percorso completo nel proprio input o modificare le impostazioni del progetto nella directory di lavoro desiderata, * quindi * avviare il processo nel debugger. – WhozCraig
Quando si esegue/esegue il debug del programma da Visual Studio, la directory corrente è la directory del progetto. –
Perché è Microsoft. Scrivono software per disturbare gli sviluppatori e raccogliere informazioni su ciò che le persone stanno codificando. Non hanno alcun interesse nel consentire agli sviluppatori, se lo facessero, perderebbero il loro monopolio. Visual Studio è progettato per essere paralizzante e poco ergonomico come un ambiente di sviluppo. Non ci sono nemmeno strumenti di perdita di memoria sani di mente/valgrind o sistemi di recinzione elettrici per la ricerca di perdite di memoria. Lo sviluppo di Windows è un inferno. – Owl