QT creator 和 ifstream filenam.c_str()

QT creator and ifstream filenam.c_str()

我使用 QT creator 4.1.0 创建了一个 C++ 控制台应用程序 此应用程序最初是使用代码块创建的并且运行良好。

这是代码

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
string nomeFile="";

cout << "\nNome file: ";
    cin >> nomeFile;                                // inserire nome file  ROF.txt da leggere

//ifstream leggiROF(nomeFile.c_str());              // apre in lettura il file ROF.txt
ifstream leggiROF("C:\Users\Massimo Di Natale\Documents\Programmi C++ 11\Programmi_QT\prova\a.txt");

string riga="";
if(leggiROF)                                        // se lo trova
{
    while(!leggiROF.eof())                          // finché non raggiunge la fine del file
    {
        getline(leggiROF, riga);                    // legge la riga
        cout << "Riga: " << riga << endl;
    } // end while
} // end if

else                                                // altrimenti
{
    cout << "\nIl nome file inserito non e' stato trovato!!!" << endl;
    cout << "Controllare che sia stato inserito nella cartella corretta.\n" << endl;

    exit (EXIT_SUCCESS);                            // termina il programma
} // end else


leggiROF.close();
return 0;
}

如果我在 ifstream 上指定文件名及其路径,它就可以工作。 如果我想通过 cin 插入文件名然后使用 ifstream filenam.c_str() 它找不到文件。 我想从目录中读取 .txt 文件是项目还是 .exe

尝试 getline(cin,nomeFile); 而不是 cin >> nomeFile"std::cin.getline( ) vs. std::cin" 问题的答案描述了它们之间的区别。