Я пытаюсь прочитать информацию из одного файла, затем преобразует информацию, которая была прочитана, и выводит ее в другой файл. Затем мне нужно удалить исходный файл и переименовать первый второй файл, содержащий обновленную информацию. Я пытаюсь сделать это, вызвав исходный файл, преобразовывая информацию и сохраняя информацию в новый файл, затем использую функцию delete и функцию переименования, которая находится на C++. любая идея, почему я получаю сообщение об ошибке при открытии файла?Почему я продолжаю получать ошибку этого файла?
data.txt содержит
- XCIX
- XI
- IX
temp.txt пуст
и сохраняются в C: \ Users \ Владелец \ Documents \ Visual Studio 2013 \ Projects \ Roman числительные \ Debug
int main()
{
fstream dataFile;
fstream outfile;
string line;
string output;
outfile.open("temp.txt", ios::out);
dataFile.open("data.txt", ios::in);
if (!dataFile)
{
cout << "File Error\n";
}
else
{
cout << "Opened correctly!\n" << endl;
while (dataFile)
{
if (dataFile.eof()) break;
getline(dataFile, line);
if (line[1] == '1' || line[1] == '2' || line[1] == '3' || line[1] == '4' || line[1] == '5' || line[1] == '6' || line[1] == '7' || line[1] == '8' || line[1] == '9' || line[1] == '0')
{
outfile << numbertonumberal(line) << "\n";
}
else
{
outfile << romantonumberal(line) << "\n";
}
}
dataFile.close();
remove("data.txt");
rename("temp.txt", "data.txt");
cout << "All values have been converted are are in the original file\n";
outfile.close();
}
return 0;
}
Мой выход представляет собой одну строку, которая говорит об ошибке файла.
Подтвердили ли вы, что data.txt на самом деле существует, и что рабочий каталог вашего проекта, когда это начинается, где вы думаете, что это так? – wakjah
Обратите внимание, что рабочий каталог не обязательно тот, в котором находится ваш исполняемый файл. – Cthulhu
Я не уверен, что рекомендуется закрыть только выходной файл ПОСЛЕ того, как вы переименовали его из temp.txt в data.txt. Ouput может быть буферизирован и только очищается до физического файла, когда он фактически закрыт. – antred