Возможно ли открыть файл fstream для файла, который не существует с ios :: in & ios :: out без ошибки?fstream вход и выход из несуществующего файла
ответ
#include <iostream>
#include <fstream>
using namespace std;
int main() {
fstream f("test.txt", fstream::in | fstream::out);
cout << f.fail() << endl;
f << "hello" << endl;
f.close();
return 0;
}
Этот код будет печатать 1
и не будет создавать файл «test.txt», если он не выходит. Таким образом, невозможно открыть и запустить файл, который не существует, без получения ошибки.
Возможно, вы имели в виду «filestr.fail () "и" filestr << "hello" << endl; "?! – Secko
@Secko Да, спасибо. –
#include <fstream>
ofstream out("test", ios::out);
if(!out)
{
cout << "Error opening file.\n";
return 1;
}
ifstream in("test", ios::in);
if(!in)
{
cout << "Error opening file.\n";
return 1;
}
При возникновении ошибки отображается сообщение и возвращается один (1). Однако можно скомпилировать и выполнить только ofstream out("test", ios::out);
и ifstream in("test", ios::in);
без каких-либо ошибок. В любом случае создается файл test.
Update: Чтобы открыть fstream
на файл, который не существует для ввода и вывода (произвольного доступа), не получая ошибки, вы должны предоставить fstream::in | fstream::out | fstream::trunc
в (или конструктор) вызова open
. Поскольку файл еще не существует, обрезание файла с нулевыми байтами не является драмой.
Вы бы хочу ошибку при открытии файла, который не существует при указании толькоios::in
, так как вы никогда не будете иметь возможность читать из потока, так что лучше потерпеть неудачу рано.
Так почему же не открывается файл, который не существует через объект класса fstream, выдает ошибку? Пример: fstream myfile; myfile.open ("this_file_doesn't_exist.txt"); // Это не вызывает никакой ошибки. – Ketcomp
std::fstream f("test.txt", std::ios_base::out);
f.close(); //file now exists always
f.open("test.txt", fstream::in | std::ios_base::out);
//f is open for read and write without error
Я не проверял, чтобы он открылся без ошибок, но я уверен, что он должен.
- 1. «Вход и выход» из сокета
- 2. Вход и выход из локон?
- 3. Вход и выход из Perl
- 4. вход/выход для файла в C++
- 5. fstream и sstream обработка: вход повторяет
- 6. Swift несуществующего выход падает приложение
- 7. Вход/выход из Silverstripe
- 8. Вход и выход JSONarray
- 9. fstream и setw не правильно выровняли выход.
- 10. C Вход и выход
- 11. Вход и выход AdaBoost?
- 12. Получение ФАЙЛА * из std :: fstream
- 13. Вход и выход из приложения iOS
- 14. Вход и выход из системы SignalR
- 15. Вход и выход из системы jsf
- 16. Вход/Выход из приложения iPhone
- 17. Xcode Building из несуществующего файла проекта
- 18. C++ Вход/выход
- 19. Перенаправление ввода из несуществующего файла в fopen()
- 20. Вход/Выход из сессии Выпуск
- 21. Вход и выход VBA Facebook
- 22. Не удается удалить из мерзавца несуществующего файла
- 23. Не удается удалить записи из несуществующего файла
- 24. Передача параметров: вход и выход
- 25. Вход и выход в угловой2
- 26. выход Вход в Nginx
- 27. Вход Verilog и двоичный выход
- 28. Драйвер Windows: вход и выход
- 29. Вход и выход с потоками
- 30. Вход и выход с web.py
Не забудьте принять ответы или помочь автоответчикам, сообщив им, пробовали ли вы их решения (или заполните их более подробной информацией, чтобы они могли адаптировать свои ответы.) –