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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ifstream не открывается файл? 
V
    Опции темы
Killer_13
  Дата 20.3.2010, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здаравствуте.
Смешно такое спрашывать. Но у меня почему то не считывается файл.
В книгах смотрел, видео урок смотрел, делаю все так как там, а мне вот... 
Програмка на 10 строчек, и не работает, - выводит не содержымое файла, а одно и то же число..
В чем туплю? Спасибо..

Код

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
   ifstream datei ("file.txt");

        for(int i=0; i<10; ++i){

            int v;
            datei>>v;
            cout<<v<<endl;
        }
    return 0;
}


PM MAIL   Вверх
azesmcar
Дата 20.3.2010, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



вопрос номер 1, а файл там есть? т.е. в какой он директории? на будущее, в таких случая в первую очередь пробуй указать абсолутный путь к файлу (т.е. c:\windows ... )
В твоем случае проблема в запуске через Visual Studio (скорее всего), ну или какой нибудь другой IDE, при запуске current directory меняется, если очень интересно на что, выведи GetCurrentDirectory().

Это сообщение отредактировал(а) azesmcar - 20.3.2010, 16:01
PM   Вверх
Killer_13
Дата 20.3.2010, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Файл в той же директории - проверял дважды. :(
IDE CodeBlocks.

А почему директория то мняется? :(

Запускал и на Windows 7 64bit(сначало думал, что проблема в разрядности - оказывается - нет) и на 32bit.

а как вывести то...
GetCurrentDirectory...?

Пробовали и

Код

GetCurrentDirectory();
и
cout<<GetCurrentDirectory;


PM MAIL   Вверх
azesmcar
Дата 20.3.2010, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(Killer_13 @  20.3.2010,  16:05 Найти цитируемый пост)
Файл в той же директории - проверял дважды. :(

в той это в которой? я же говорю, твой файл находится в папке debug/release, а IDE меняет текущую директорию на директорию проекта (кажется, не помню точно, то ли проекта, то ли солюшена, но это в студии, как там в CodeBlocks не знаю).

Цитата(Killer_13 @  20.3.2010,  16:05 Найти цитируемый пост)
а как вывести то...
GetCurrentDirectory...?

Код

std::cout << GetCurrentDirectory() << std::endl;

и include Windows.h
PM   Вверх
Killer_13
Дата 20.3.2010, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я при создании проекта ставил флажок только Debug,  Release не отмечал.

Написал

Код

#include <iostream>
#include <fstream>
#include "Windows.h"

using namespace std;

int main()
{
   ifstream datei ("file.txt");

        for(int i=0; i<10; ++i){

            int v;
            datei>>v;
            cout<<v<<endl;
            cout<<GetCurrentDirectory()<<endl;
        }
    return 0;
}



C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\winbase.h|1409|error: too few arguments to function `DWORD GetCurrentDirectoryA(DWORD, CHAR*)'|

\STUDIUM\C++\Praktikum1\main.cpp|16|error: at this point in file|

Это сообщение отредактировал(а) Killer_13 - 20.3.2010, 16:18
PM MAIL   Вверх
azesmcar
Дата 20.3.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(Killer_13 @  20.3.2010,  16:17 Найти цитируемый пост)
Я при создании проекта ставил флажок только Debug,  Release не отмечал.

ты не понял о чем я.. в общем поставь абсолютный путь.

Цитата(Killer_13 @  20.3.2010,  16:17 Найти цитируемый пост)
C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\winbase.h|1409|error: too few arguments to function `DWORD GetCurrentDirectoryA(DWORD, CHAR*)'|

да, совсем забыл что это не C# smile 
Код

char dir[255];
GetCurrentDirectoryA(255, dir);
std::cout << dir << std::endl;

PM   Вверх
Killer_13
Дата 20.3.2010, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

char dir[255];
GetCurrentDirectoryA(255, dir);
std::cout << dir << std::endl;

Выводит папку в которой проект, все файлы и файл который я хочу прочитать..
Соственно, рабочую папку.

Цитата

ты не понял о чем я.. в общем поставь абсолютный путь.


и теперь тоже не понял.. не пинайте сильно.. :(
Я при создании проекта и всех файлов указывал путь где они будут сохранятся..

Может вы это имеете введу - "Свойства проекта"


Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  Untitled_1.jpg 71,44 Kb
PM MAIL   Вверх
azesmcar
Дата 20.3.2010, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(Killer_13 @  20.3.2010,  16:29 Найти цитируемый пост)
и теперь тоже не понял.. не пинайте сильно.. :(
Я при создании проекта и всех файлов указывал путь где они будут сохранятся..

Может вы это имеете введу - "Свойства проекта"

свойства тут непричем, этого нельзя исправить..так работает IDE, смотри

компилятор создает exe файл, который ты запускаешь, когда ты запускаешь свой exe файл через IDE (т.е. делаешь ctrl+F5 или что-то там еще) ide устанавлиает свою текущую директорию, во всяком случае так это делает Visual Studio. Чтобы исправить твою проблему просто напиши абсолютный путь.
чтобы было понятнее
Код

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
   ifstream datei ("d:\\documents\\file.txt");
        for(int i=0; i<10; ++i){
            int v;
            datei>>v;
            cout<<v<<endl;
        }
    return 0;
}

PM   Вверх
Killer_13
Дата 20.3.2010, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



:(:(:(:(
Результат тот же... :(
Код

ifstream datei ("E:\\!!!!!DEUTSCHLAND!!!!!\\STUDIUM\\C++\\Praktikum1\\file.txt");


Вот что в итоге выводит на экран.



Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Untitled_1.jpg 42,63 Kb
PM MAIL   Вверх
azesmcar
Дата 20.3.2010, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(Killer_13 @  20.3.2010,  16:38 Найти цитируемый пост)
:(:(:(:(
Результат тот же... :(

присоедини проект к теме
PM   Вверх
Killer_13
Дата 20.3.2010, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот.


Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Praktikum1.rar 432,62 Kb
PM MAIL   Вверх
azesmcar
Дата 20.3.2010, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Killer_13

ты находящиеся в файле данные
Цитата

Oleg
Fedak
killer
webdev
Cool

как int читаешь?
Код

int v;
datei>>v;


Добавлено через 2 минуты и 32 секунды
Код

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream datei ("file.txt");
    if (!datei.is_open())
    {
        cerr << "Cannot open file" << endl;
        return EXIT_FAILURE;
    }
    for(int i=0; i<3; ++i)
    {
        string v;
        datei>>v;
        cout<<v<<endl;
    }
}

Сделай так, с открытием файла у тебя все в порядке как оказалось.

Это сообщение отредактировал(а) azesmcar - 20.3.2010, 17:02
PM   Вверх
Killer_13
Дата 20.3.2010, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вот я затупил. - спасибо огромное, думаю вопрос решен! smile

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

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

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

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

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


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

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


 




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


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

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