Я создал консольное приложение C ++ с QT Creator 4.1.0
Это приложение изначально было создано с использованием блоков кода и работает отлично.
это код
#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 elseleggiROF.close();
return 0;
}
Если я указываю имя файла с его путем на ifstream, он работает.
Если я хочу вставить имя файла с помощью cin, а затем использовать ifstream filenam.c_str (), он не найдет файл.
Я хочу прочитать. TXT-файл из каталога, где проект или. EXE
Пытаться getline(cin,nomeFile);
вместо cin >> nomeFile
, Ответы на «std :: cin.getline () против std :: cin» Вопрос описывает разницу между ними.
Других решений пока нет …