Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с файловыми потоками 
V
    Опции темы
Metalex
Дата 11.4.2010, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Доброго времени суток!
Прошу помощи более знающих людей, чем я..
У меня есть двусвязный список, реализованный с помощью классов. Сам класс находится в другом, подключенном к проекту файле.
Есть ф-я, в которой мне нужно добавить элемент в начало списка. При этом весь список должен хранится в файле. Поэтому копирую, что уже есть в файле (то есть список) в дополнительный файл, записую новое звено, копирую из дополнительного файла назад. Но при исполнении постоянно выскакивает:
Цитата

Error! Not openfile. 1"

Код

void  List::putinbeg(string s)
{ 
    //открытие файлов
    ifstream from("one.txt");
    if (!from.is_open())
    {
        cout<<"Error! Not openfile. 1"<<endl;
        system ("Pause");
        exit (1);
    }
    ofstream to("dopoln.txt");
    if (!to.is_open())
    {
        cout<<"Error! Not openfile. 2"<<endl;
        system ("Pause");
        exit (1);
    }
    //
    Node *pv = new  Node(s);
    if  (pbeg == 0)
    {
        pbeg = pend = pv;
    }
    else
    { 
        pv->next=pbeg;
        pbeg->prev=0;
        pbeg=pv;
    }
    string stroka;
    while (getline (from, stroka))
    {
        to<<stroka<<endl;
    }
    from.close();
    to.close();
    //открытие файлов
    ofstream toer("one.txt");
    if (!toer.is_open())
    {
        cout<<"Error! Not openfile. 3"<<endl;
        system ("Pause");
        exit (1);
    }
    ifstream fromer("dopoln.txt");
    if (!fromer.is_open())
    {
        cout<<"Error! Not openfile. 4"<<endl;
        system ("Pause");
        exit (1);
    }
    toer<<s<<endl;
    while (getline (fromer, stroka))
    {
        toer<<stroka<<endl;
    }
    fromer.close();
    toer.close();
}

Благодарю всех!


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
azesmcar
Дата 11.4.2010, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Metalex

Ну значит нету такого файла. Если он там все таки есть, попробуй передать абсолютный путь (т.е d:\\work\\project\\one.txt). 
PM   Вверх
ИванМ
Дата 11.4.2010, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 1
Всего: 23



Если в Visual Studio делаешь, файл one.txt должен находиться в папке где исходники, когда запускаешь внутри IDE. А так в той же папке где exe.
PM MAIL   Вверх
Metalex
Дата 11.4.2010, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Так он ведь сам должен создаватся! Зачем вручную-то?


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
ИванМ
Дата 11.4.2010, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 1
Всего: 23



Цитата(Metalex @  11.4.2010,  22:18 Найти цитируемый пост)
Так он ведь сам должен создаватся!

с чего это?
PM MAIL   Вверх
Metalex
Дата 11.4.2010, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Ну вот например, в этой проге само создает:
Код

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main ()
{
    ofstream to("one.txt");
    if (!to.is_open())
    {
        cout<<"Error! Not openfile."<<endl;
        system ("Pause");
        return 1;
    }
    string s;
    while (getline (cin, s))
    {
        to<<s<<endl;
    }
    to.close();

    ifstream from("one.txt");
    if (!from.is_open())
    {
        cout<<"Error! Not openfile."<<endl;
        system ("Pause");
        return 1;
    }
    while (getline (from, s))
    {
        cout<<s<<endl;
    }

    system ("Pause");
    return 0;
}

Да и во всех учебниках так написано.


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
ИванМ
Дата 11.4.2010, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 1
Всего: 23



конечно создает, потому что ofstream, а у тебя ifstream.
PM MAIL   Вверх
Metalex
Дата 12.4.2010, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



ИванМ, а разница? Все равно должно создавать :(


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
azesmcar
Дата 12.4.2010, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(Metalex @  12.4.2010,  11:33 Найти цитируемый пост)
а разница? 

разница есть.
std::ifstream
std::ofstream

Цитата(Metalex @  12.4.2010,  11:33 Найти цитируемый пост)
Все равно должно создавать 

где это написано?

Добавлено через 1 минуту и 13 секунд
Metalex

я не понимаю, как можно писать программу и использовать классы/функции толком не разобравшись в них, если ты не знаешь разницу между ofstream и ifstream каким образом ты используешь их в своей программе? Может лучше начать с чтения книг?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.