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

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

Войти
Регистрация
Восстановить пароль
 
VВладимир
1 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 50
#1

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

21.09.2014, 21:57. Просмотров 564. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение переменных из файла (C++):

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

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

Сравнение переменных или чтение с файла? - C++
После тестировки, выяснилось, что проблема возникает в строке указаной коментом. Хочу узнать в чем заключается ошибка.Возможно проблема...

Переделать в коде чтение из файла в чтение с клавиатуры - C++
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен за помощь! //файл должен начинаться со слова, между...

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

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

9
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,341
21.09.2014, 22:01 #2
Цитата Сообщение от VВладимир Посмотреть сообщение
double arrayOfDouble[2];
Цитата Сообщение от VВладимир Посмотреть сообщение
(1,2).
может дело в том что 1,2 это не double а два числа
0
VВладимир
1 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 50
21.09.2014, 22:10  [ТС] #3
Да, это два числа. Я задавал тип int, все равно не считываются
0
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,341
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 / 0
Регистрация: 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
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,341
21.09.2014, 23:08 #6
Цитата Сообщение от VВладимир Посмотреть сообщение
Теперь задаю в текстовом файле массив в виде: arrayOfDouble[2]=(3.1, 6.2);
прямо так и написал?
а если 3.1 6.2 ????
0
VВладимир
1 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 50
21.09.2014, 23:15  [ТС] #7
Да, так и написал - хоть выдается сообщение, что хотя бы числа считаны. Теперь переписал:arrayOfDouble[2]=(3.1 6.2); - но все равно неправильно выводит...
0
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,341
21.09.2014, 23:20 #8
Цитата Сообщение от VВладимир Посмотреть сообщение
но все равно неправильно выводит...
он у тебя считывает первые буквы как значения
если ты хочешь в файле вот так писать
нужно считывать строку и парсить её( выделять числовые значения)
0
VВладимир
1 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 50
21.09.2014, 23:26  [ТС] #9
Если бы знать еще, как строку выделять и как значения парсить...Отделить я могу - пробелами, перенести значения, а как выделить, надо подумать.Считать строку - это, по-моему, тип string...
0
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,341
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
Привет! Вот еще темы с ответами:

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

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. - C++
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;locale.h&gt; #include&lt;iomanip&gt; #include &lt;cstdlib&gt; using namespace std; struct...

Чтение нескольких структур и одной переменной из бинарного файла. Формат файла имеется - C++
Формат файла состоит из 3 структур и одной переменной. Подробное описание формата во вложении, просьба посмотреть его. У меня возникла...

как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла? - C++
Друзья! Создадим два текстовых файла, f_0.txt и f_1.txt и что-нибудь в них запизаем, например в первый запихаем 1234 а во второй 5678 и...


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

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

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