-12 / 0 / 4
Регистрация: 04.10.2014
Сообщений: 272
1

Открытие файла через объекта класса fstream

07.03.2016, 23:42. Показов 4078. Ответов 8

Есть функция:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
bool Lr::MakeFile()
{
    string name, fullname;
 
    cout <<"Введите имя нового файла:";
    cin.sync();
    getline(cin, name);
    fullname = (name) + ".txt";
 
    fstream File;
    File.open(fullname);
    if (!File.is_open()) {
        cout << "Возникли проблемы с созданием нового файла!"<<endl;
        throw exception("Не удалось создать файл!");
    }
    else
    {
        File.close();
        cout << "Файл с данным именем успешно создан!"<<endl;
        _getch();
        return true;
    }
}
При использовании объекта класса fstream и открытие файла с его помощью возникают проблемы, при замене на ifstream или ofstream все выполняется успешно. Почем так получается?fstream является базовым для ifstream и ofstream, если я правильно понимаю.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2016, 23:42
Ответы с готовыми решениями:

Объявление объекта класса fstream в качестве статической компоненты другого класса
Доброго времени суток. Есть задание, в котором говорится &quot;...Перепишите программы из упражнений 4 и...

Чтение файла через fstream
прочитать из файла матрицу и записать в новый файл её минимальный элемент в первой строке задана...

Ошибка в копирование файла через fstream
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main() {...

Удаление файла *.txt через библиотеку <fstream>
Здравствуйте! Хочу использовать временный файл,для сохранения в нем главной информации,если...

8
52 / 52 / 24
Регистрация: 24.12.2011
Сообщений: 133
07.03.2016, 23:50 2
Лучший ответ Сообщение было отмечено artart96 как решение

Решение

У меня вот такой код, например, работает нормально.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <fstream>
 
int main ()
{
  std::fstream fs;
 
  fs.open ("test.txt", std::fstream::out);
 
  fs << " abcd";
 
  fs.close();
 
  return 0;
}
Попробуйте исправить на
C++
1
File.open(fullname, fstream::out);
1
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
08.03.2016, 00:14 3
Цитата Сообщение от artart96 Посмотреть сообщение
При использовании объекта класса fstream и открытие файла с его помощью возникают проблемы,
Цитата Сообщение от artart96 Посмотреть сообщение
C++
1
2
fstream File;
File.open(fullname);
При таком открытии, файл должен существовать, если нет, то новый не создаётся.
Цитата Сообщение от artart96 Посмотреть сообщение
при замене на ifstream или ofstream все выполняется успешно.
При замене на ifstream будет то же самое (должен существовать).
0
-12 / 0 / 4
Регистрация: 04.10.2014
Сообщений: 272
08.03.2016, 00:17  [ТС] 4
Цитата Сообщение от nd2 Посмотреть сообщение
При замене на ifstream будет то же самое (должен существовать).
Не будет.
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
08.03.2016, 00:19 5
Цитата Сообщение от artart96 Посмотреть сообщение
Не будет.
Хочешь сказать, что такое открытие тебе файл создаст?
C++
1
2
ifstream File;
File.open(fullname);
0
-12 / 0 / 4
Регистрация: 04.10.2014
Сообщений: 272
08.03.2016, 00:22  [ТС] 6
Цитата Сообщение от nd2 Посмотреть сообщение
Хочешь сказать, что такое открытие тебе файл создаст
Уже сказал.
0
52 / 52 / 24
Регистрация: 24.12.2011
Сообщений: 133
08.03.2016, 00:42 7
artart96, ifstream открывает файл на чтение. Если его нет, то он его не создает.
0
467 / 370 / 175
Регистрация: 08.04.2013
Сообщений: 1,592
08.03.2016, 08:02 8
fstream - общий файловый поток, которому при открытии необходимо указать, предназначен ли он для ввода,вывода или для обеих операции сразу
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
08.03.2016, 12:37 9
Цитата Сообщение от marat_miaki Посмотреть сообщение
которому при открытии необходимо указать
Если не указывать, то используется значение по умолчанию: чтение и запись.
http://www.cplusplus.com/refer... m/fstream/
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2016, 12:37
Помогаю со студенческими работами здесь

Как указать имя файла в fstream через string и функцию?
Я написал програму которая переводит системы исчесления(2-36).Програма роботает на ура ,но я хотел...

Не работает ввод имени файла через fget и открытие через fopen
Уже все перепробовал и в гугле пару часов посидел. Но никак не пойму где проблема допустим в этом...

fstream: открытие на запись
fstream a(&quot;file.txt&quot;,ios::out); a&lt;&lt;&quot;abc\n&quot;; a.close(); Перезаписывает файл полностью даже без...

Не могу вывести объекта класса из файла
Всем доброго времени суток! Не могу вывести объект класса из файла, когда записываю из файла в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru