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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с чтением из файла. ошибка открытия файла 
:(
    Опции темы
LeD4eG
Дата 3.2.2011, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 29.9.2009
Где: Волгоград

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



Доброго времени суток!
возникли проблемы с решением задачи, точнее не совсем с решением самой задачи....
задача на поиск подстроки в файле. получил следующий код:

Код

#include<iostream>
#include<fstream>
#include<string>
#include<windows.h>

using namespace std;

char* Rus(const char* text);

int main(){
    const int len = 81;
    char word[len], line[len];
    cout<<Rus("Введите слова для поиска: ");
    cin>>word;

    ifstream fin("text.txt", ios::in | ios::_Nocreate);
    if(!fin) {
        cout<<Rus("Ошибка открытия файла.")<<endl;
        return 1;
    }

    while(fin.getline(line, len)){
        if(strstr(line,word)) {
            cout<<Rus("Совпадения найдены!")<<endl;
            return 0;
        }
    }
    cout<<Rus("Совпадения не найдены.")<<endl;
    return 0;
}
char bufRus[256];
char* Rus(const char* text){
    CharToOem(text, bufRus);
    return bufRus;
}

при запуске выводится сообщение "ошибка открытия файла". файл лежит в каталоге с программой....

P.S. подобные темы читал. некоторые свои ошибки уже исправил. 
--------------------
Ты не успел стать для кого-то главным, кому-то очень нужным.....
PM MAIL   Вверх
panter
Дата 3.2.2011, 22:22 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Плохой подход. Нужно указывать полный путь к файлу. 
PM MAIL ICQ Skype Jabber   Вверх
Фантом
Дата 3.2.2011, 22:36 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


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

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



Вам не кажется, что в этой строчке:
Код

    ifstream fin("text.txt", ios::in | ios::_Nocreate);

не хватает одного символа "|" ?  smile 
PM   Вверх
Batbko
Дата 3.2.2011, 22:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 17.12.2010

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



Цитата(Фантом @ 3.2.2011,  22:36)
Вам не кажется, что в этой строчке:
Код

    ifstream fin("text.txt", ios::in | ios::_Nocreate);

не хватает одного символа "|" ?  smile

нет
PM MAIL   Вверх
Фантом
Дата 3.2.2011, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


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

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



А, да, действительно - торможу.
PM   Вверх
volatile
Дата 3.2.2011, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



На студии при запуске программы, текущей директорией является директория проекта, а не директория где расположен екзешник. Другие среды не знаю, возможно и там такие-же фичи.
В опциях проекта можно изменить.
Ну и полный путь, как тут уже говорили, тоже решает.

PM MAIL   Вверх
LeD4eG
Дата 4.2.2011, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 29.9.2009
Где: Волгоград

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



всё равно не помогает. указал полный путь. ошибка не уходит.
пользуюсь Visual C++ 2005 EE.
--------------------
Ты не успел стать для кого-то главным, кому-то очень нужным.....
PM MAIL   Вверх
LeD4eG
Дата 4.2.2011, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 29.9.2009
Где: Волгоград

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



всё равно не помогает. указал полный путь. ошибка не уходит.
пользуюсь Visual C++ 2005 EE.
--------------------
Ты не успел стать для кого-то главным, кому-то очень нужным.....
PM MAIL   Вверх
panter
Дата 5.2.2011, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Приведи код с полным путем.
PM MAIL ICQ Skype Jabber   Вверх
LeD4eG
Дата 5.2.2011, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 29.9.2009
Где: Волгоград

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



Код

#include<iostream>
#include<fstream>
#include<string>
#include<windows.h>

using namespace std;

char* Rus(const char* text);

int main(){
    const int len = 81;
    char word[len], line[len];
    cout<<Rus("Введите слова для поиска: ");
    cin>>word;

    ifstream fin("C://Documents and Settings/Лётчик/Мои документы/Visual Studio 2008/Projects/Павловская/Семинар 5/task5_1/task5_1/text.txt", ios::in);
    if(!fin) {
        cout<<Rus("Ошибка открытия файла.")<<endl;
        return 1;
    }

    while(fin.getline(line, len)){
        if(strstr(line,word)) {
            cout<<Rus("Совпадения найдены!")<<endl;
            return 0;
        }
    }
    cout<<Rus("Совпадения не найдены.")<<endl;
    return 0;
}
char bufRus[256];
char* Rus(const char* text){
    CharToOem(text, bufRus);
    return bufRus;
}

--------------------
Ты не успел стать для кого-то главным, кому-то очень нужным.....
PM MAIL   Вверх
panter
Дата 5.2.2011, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Попробуй путь без пробелов и символов кириллицы.
PM MAIL ICQ Skype Jabber   Вверх
xvr
Дата 7.2.2011, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Слеши должны быть обратные ('//'), и после C: достаточно одного слэша

Код

    ifstream fin("C:\\Documents and Settings\\Лётчик\\Мои документы\\Visual Studio 2008\\Projects\\Павловская\\Семинар 5\\task5_1\\task5_1\\text.txt", ios::in);
Файл точно есть? Уж очень замысловатый путь  smile 


Это сообщение отредактировал(а) xvr - 7.2.2011, 12:03
PM MAIL   Вверх
Molodec
Дата 7.2.2011, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(volatile @ 3.2.2011,  23:27)
На студии при запуске программы, текущей директорией является директория проекта, а не директория где расположен екзешник. Другие среды не знаю, возможно и там такие-же фичи.
В опциях проекта можно изменить.
Ну и полный путь, как тут уже говорили, тоже решает.

На Visual Studio 2010 именно директория Release/Debug является текущей. По крайней мере по-умолчанию.
PM MAIL   Вверх
borisbn
Дата 7.2.2011, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(volatile @  3.2.2011,  23:27 Найти цитируемый пост)
На студии при запуске программы, текущей директорией является директория проекта, а не директория где расположен екзешник. Другие среды не знаю, возможно и там такие-же фичи.В опциях проекта можно изменить.


Я, например, взял себе за правило сразу после создания проекта менять Project/Properties/Debugging\Working Directory на $(TargetDir) и такой проблемы не знаю smile



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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