Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
VВладимир
1 / 1 / 1
Регистрация: 08.10.2012
Сообщений: 50
1

Чтение переменных из файла

21.09.2014, 21:57. Просмотров 738. Ответов 9
Метки нет (Все метки)

Здравствуйте. Подскажите, пожалуйста, в решении такой проблемы. Нашел код программы, которая позволяет считывать данные, заданные в текстовом файле в виде блока (массива). Проблема в том, что не те числа выводит, а значит и считывает. Компилируется нормально, без ошибок. На экране появляется сообщение: "0 items were read".
Далее привожу код. Заранее благодарен. Переменные в считываемом файле fileREADMAS.txt" находятся в следующем виде : (1,2). Пробовал задавать в столбец и без скобок, все равно не считываются.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <windows.h> 
#include <conio.h>
#include <math.h>
 
using namespace std;
 
int main(int argc, char* argv[])
 
{ 
    setlocale(LC_ALL, "rus");
    double a,b,c;
  
FILE *pFile = fopen("fileREADMAS.txt", "rb");
if (pFile == NULL)
{
printf("File opening error\n");
return 1;
}
double arrayOfDouble[2];
int readItemsCount = fread(&arrayOfDouble[0], sizeof(double), 2, pFile);
printf("%d items were read\n", readItemsCount);
fclose(pFile);
pFile = NULL;
 
a=arrayOfDouble[1];
b=arrayOfDouble[2];
 
 
c=a+b;
 
cout <<a<< endl;
cout <<b<< endl;
cout <<c<< endl;
 
 system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2014, 21:57
Ответы с готовыми решениями:

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

Чтение переменных из текстового файла
Раньше с С++ не сталкивался, и вот поставили мне такую задачу: вынуть следующие...

Чтение целочисленных переменных из файла
Всем привет! Нужна помощь с работой с файлами. Есть файл &quot;anketa.dat&quot;,...

Сравнение переменных или чтение с файла?
После тестировки, выяснилось, что проблема возникает в строке указаной...

Переделать в коде чтение из файла в чтение с клавиатуры
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен...

9
ValeryS
Модератор
7263 / 5517 / 692
Регистрация: 14.02.2011
Сообщений: 18,681
21.09.2014, 22:01 2
Цитата Сообщение от VВладимир Посмотреть сообщение
double arrayOfDouble[2];
Цитата Сообщение от VВладимир Посмотреть сообщение
(1,2).
может дело в том что 1,2 это не double а два числа
0
VВладимир
1 / 1 / 1
Регистрация: 08.10.2012
Сообщений: 50
21.09.2014, 22:10  [ТС] 3
Да, это два числа. Я задавал тип int, все равно не считываются
0
ValeryS
Модератор
7263 / 5517 / 692
Регистрация: 14.02.2011
Сообщений: 18,681
21.09.2014, 22:20 4
Цитата Сообщение от VВладимир Посмотреть сообщение
не считываются
и не будет

Не по теме:

KOPOJI теги поставил, я и заметил
мораль: выделяй код

Цитата Сообщение от VВладимир Посмотреть сообщение
FILE *pFile = fopen("fileREADMAS.txt", "rb");
открываем файл в бинарном режиме
а файл
Цитата Сообщение от VВладимир Посмотреть сообщение
в текстовом файле
ответственно считывает не то
открывай в текстовом
C++
1
FILE *pFile = fopen("fileREADMAS.txt", "r");
Добавлено через 1 минуту
да и здесь наверно лучше использовать не fread а fscanf
http://lord-n.narod.ru/download/book.../13/fscanf.htm
0
VВладимир
1 / 1 / 1
Регистрация: 08.10.2012
Сообщений: 50
21.09.2014, 22:58  [ТС] 5
Теперь задаю в текстовом файле массив в виде: arrayOfDouble[2]=(3.1, 6.2); Выдает надпись: 2 items were read - что-то считал. Букву "b" убрал. С функцией fscanf не получается. в общем теперь есть сообщение, что считываются 2 числа, но опять не те. Видимо, с форматом задания или считывания какие-то проблемы...
0
ValeryS
Модератор
7263 / 5517 / 692
Регистрация: 14.02.2011
Сообщений: 18,681
21.09.2014, 23:08 6
Цитата Сообщение от VВладимир Посмотреть сообщение
Теперь задаю в текстовом файле массив в виде: arrayOfDouble[2]=(3.1, 6.2);
прямо так и написал?
а если 3.1 6.2 ????
0
VВладимир
1 / 1 / 1
Регистрация: 08.10.2012
Сообщений: 50
21.09.2014, 23:15  [ТС] 7
Да, так и написал - хоть выдается сообщение, что хотя бы числа считаны. Теперь переписал:arrayOfDouble[2]=(3.1 6.2); - но все равно неправильно выводит...
0
ValeryS
Модератор
7263 / 5517 / 692
Регистрация: 14.02.2011
Сообщений: 18,681
21.09.2014, 23:20 8
Цитата Сообщение от VВладимир Посмотреть сообщение
но все равно неправильно выводит...
он у тебя считывает первые буквы как значения
если ты хочешь в файле вот так писать
нужно считывать строку и парсить её( выделять числовые значения)
0
VВладимир
1 / 1 / 1
Регистрация: 08.10.2012
Сообщений: 50
21.09.2014, 23:26  [ТС] 9
Если бы знать еще, как строку выделять и как значения парсить...Отделить я могу - пробелами, перенести значения, а как выделить, надо подумать.Считать строку - это, по-моему, тип string...
0
ValeryS
Модератор
7263 / 5517 / 692
Регистрация: 14.02.2011
Сообщений: 18,681
21.09.2014, 23:29 10
Цитата Сообщение от VВладимир Посмотреть сообщение
Считать строку - это, по-моему, тип string...
желательно
но можно и обойтись массивами char
считываешь из файла строку(массив до перевода строки)
и начинаешь её анализировать
поищи по форуму, примеры были
0
21.09.2014, 23:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2014, 23:29

Чтение и запись в файл целочисленных переменных
Как записать в файл целочисленное значение, чтобы после этого можно было его...

Std::ofstream запись и чтение переменных в бинарный файл
int a = 1; std::ofstream file(&quot;test.settings&quot;, std::ios::in | std::ios::out...

Чтение из файла. Повторное чтение файла
Добрый день. Необходимо реализовать в программе функцию повторного чтения...


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

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

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