Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Ryder95
9 / 9 / 4
Регистрация: 24.10.2013
Сообщений: 216
#1

Считывание данных с файла - C++

29.11.2013, 23:40. Просмотров 893. Ответов 22
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста, программа не может прочитать данные из файла и я не знаю почему, вот код (dev-c++)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if (*c==13)
              {
                 in.open(files[curs]);
                 unsigned short coll;
                 in>>coll;
                 for (unsigned short i=0;i<coll;i++)
                 {
                     in>>n>>m;
                     a[col+i]=new double[2+n*m];
                     a[col+i][0]=n;
                     a[col+i][1]=m;
                     for (unsigned short j=2;j<2+n*m;j++)
                         in>>a[col+i][j];
                 }
                 in.close();
                 col+=coll;
                 return 0;
              }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 23:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание данных с файла (C++):

Считывание данных из файла - C++
Нужно реализовать вывод данных структуры из файла.. Задание: Заполнение футбольных команд и вывод их на экран. Вводим: название...

Считывание данных из файла - C++
у меня такая проблема: считываю данные из файла открытого fopen для чтения, символы записываются в символьный массив, как только считывание...

Считывание данных из файла - C++
Всем здравствуйте... вообщем создан пользовательский класс пассажир class Passenger: public Human { private: string...

Считывание данных из файла - C++
Всем привет, возник вопрос. Нужно считывать из .txt файла координаты точек в массив, размерность которого . Но т.к числа разделены &quot;,&quot; ,...

Считывание данных из файла - C++
почему не првильно работает считывание из файла? #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;malloc.h&gt; #include...

Считывание данных из файла - C++
не могу считать данные из файла На вход программы подаются 365 строк, которые содержат информацию о среднесуточной температуре всех дней...

22
nullpointer
46 / 46 / 5
Регистрация: 30.03.2009
Сообщений: 523
30.11.2013, 01:31 #2
Думаю как-то так должно быть:
C++
1
2
ifstream inputFile;
inputFile.open(fileName, ios::in);
0
vua72
416 / 416 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
30.11.2013, 03:11 #3
а зачем 17 строка?
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.11.2013, 12:54 #4
Открыите файла для чтения всегда нужно проверять:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if (*c==13)
              {
                 in.open(files[curs]);
                 if (!in) cout << "Error opening file!" << endl;
                 else
                 {
                     unsigned short coll;
                     in>>coll;
                     for (unsigned short i=0;i<coll;i++)
                     {
                         in>>n>>m;
                         a[col+i]=new double[2+n*m];
                         a[col+i][0]=n;
                         a[col+i][1]=m;
                         for (unsigned short j=2;j<2+n*m;j++)
                             in>>a[col+i][j];
                     }
                     in.close();
                     col+=coll;
                 }
                 return 0;
              }
Добавлено через 3 минуты
Чему равно значение coll?
0
Ryder95
9 / 9 / 4
Регистрация: 24.10.2013
Сообщений: 216
30.11.2013, 14:27  [ТС] #5
return 0 после чтения сделан для того, чтобы выйти из функции, переменная col глобальная)
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.11.2013, 14:44 #6
Цитата Сообщение от Ryder95 Посмотреть сообщение
переменная col глобальная
Про это кто-то спрашивал?
0
Ryder95
9 / 9 / 4
Регистрация: 24.10.2013
Сообщений: 216
30.11.2013, 15:08  [ТС] #7
А, не) Переменная coll изначально ничему не равна, да и создаётся она только в куске кода, что я отправлял, но при считывании найденного файла она должна быть равна 1, а при отладке он показыал мне, что её значение, поэтому он не входить в цикл и не читает данные в массив, но я не могу понять, почему он не читает переменную col(

Добавлено через 6 минут
*показывал, что значение coll 0
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.11.2013, 15:15 #8
Открытие файла проверили?
0
Ryder95
9 / 9 / 4
Регистрация: 24.10.2013
Сообщений: 216
30.11.2013, 15:22  [ТС] #9
Да, файл открывается
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.11.2013, 15:23 #10
Что в файле находится смотрели? Запись в файл в текстовом режиме делалась?
0
Ryder95
9 / 9 / 4
Регистрация: 24.10.2013
Сообщений: 216
30.11.2013, 15:28  [ТС] #11
ну да, в файле значения
1
2 2
2 2
2 2
Первое он должен прочитать coll=1, а потом уже n=2, m=2 и т.д.
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.11.2013, 15:34 #12
И как проверяете открытие файла?

Добавлено через 45 секунд
И покажите, как in создаётся?
0
Ryder95
9 / 9 / 4
Регистрация: 24.10.2013
Сообщений: 216
30.11.2013, 15:42  [ТС] #13
Проверка ввода так, как и посоветовали:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if (*c==13)
              {
                 in.open(files[curs]);
                 if (!in) cout<<"NOT OK!"<<endl;
                 system("PAUSE");
                 unsigned short coll;
                 in>>coll;
                 for (unsigned short i=0;i<coll;i++)
                 {
                     in>>n>>m;
                     a[col+i]=new double[2+n*m];
                     a[col+i][0]=n;
                     a[col+i][1]=m;
                     for (unsigned short j=2;j<2+n*m;j++)
                         in>>a[col+i][j];
                 }
                 in.close();
                 col+=coll;
                 return 0;
              }
In создаётся вне функций:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <io.h>
#include <fstream>
#include <windows.h>
 
using namespace std;
 
double** a;
ifstream in;
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.11.2013, 15:57 #14
Цитата Сообщение от Ryder95 Посмотреть сообщение
Проверка ввода так, как и посоветовали:
Не совсем так, но ладно... Если файл открывется, то 1 должна быть считана, чудес в программировании не бывает.
1
Ryder95
9 / 9 / 4
Регистрация: 24.10.2013
Сообщений: 216
30.11.2013, 16:00  [ТС] #15
Как ни странно, не читается, цикл просто проходит мимо, и я не могу понять, где я мог накосячить? Потому что реализовывал такой же считывание файла из функции main и всё отлично считывалось (пользовался такой же переменной, её закрыл методом in.close()
0
30.11.2013, 16:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2013, 16:00
Привет! Вот еще темы с ответами:

Считывание данных из файла - C++
Помогите дописать програмку, которая считывает строки из 2 файлов, в которых записаны числа. Строку нужно считывать как массив целых чисел....

Считывание данных из файла - C++
Есть файл в котором содержится число 145. Мне нужно считать из файла это число без числа 5, то есть все числа до числа 5. Помогите.

считывание данных из файла в C++ - C++
В файле находиться следующяя информация: Name AIXTRON HANKORE_ENVM_TECH BOIRON 01.01.2009 4.78 0.039 17.34 ...

Считывание данных из файла - C++
char y; ifstream fin; fin.open(&quot;maps1.txt&quot;); fin &gt;&gt; y; fin.close(); cout &lt;&lt; y; Почему-то не работает следующий код. В...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru