Форум программистов, компьютерный форум CyberForum.ru

чтение определенного элемента массива из файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите перевести программу обработки одномерного массива с переменных на указатели http://www.cyberforum.ru/cpp-beginners/thread376594.html
В одномерном массиве вычислить: 1) Количество элементов массива равных 0. 2)Сумму элементов массива расположенных после минимального элемента. 3)Упорядочить массив по возрастанию. Написал программу используя знания прошлого курса... #include <stdio.h> int main(){ int i, j, i2, k=0, min, imin, mas={2,3,4,-5,0,6,1,2,5,0};
C++ найти значение суммы по выражению определить минимальное значение n>0, для которого очередное слагаемое по модулю не превышает eps>0 при нахождении результата согласно формуле(смотри ниже) вот код программы, что я смог "сделать". буду очень признателен, если вы укажите мне на конкретное место, в котором ошибка и как ее исправить.:scratch: # include <iostream> # include <math.h> # include <iomanip> # include <strstream> #... http://www.cyberforum.ru/cpp-beginners/thread376566.html
C++ Вычисление среднего арифметического значения поледовательности дробных чисел
Написать программу для вычисления среднего арифметического значения поледовательности дробных чисел вводимых с клавиатуры.количество чисел должно задаваться во время работы.использовать инструкцию While Плизз зашла со своего парня
Классы C++
Добрый день! Как создать код программы: В текстовом файле (создается самостоятельно по заданному ниже образцу, можно скопировать образец) дана информация о студентах одной группы: • Фамилия • Имя • Отчество • Оценка по программированию • Оценка по мат. анализу • Оценка по алгебре Написать программу, реализующую работу контейнера для хранения и обработки этой информации. Необходимо:
C++ Определение максимальной площади http://www.cyberforum.ru/cpp-beginners/thread376542.html
Доброго все времени суток! Есть 2 луча исходящие из одной точки, угол между ними 90. Есть также 2 отрезка a и b. Необходимо найти такое расположение этих отрезков, чтобы получился четырехугольник максимальной площади... причем положения находить необязательно достаточно вычислить площадь... Задача взята отсюда Если кто знает какие-нибудь теоремы на эту тему подскажите пожалста. #include...
C++ Перегрузка операторов Мне нужно определить тип name_and_adress. Потом перегрузить для него операторы << и >> и скопировать поток объектов name_and_adress. У меня есть перегрузка операторов и пример ее использования, но мне нужно переделать для моего типа #include"stdafx.h"; #include<iostream> using namespace std; struct info { char *name; double val; char *units; подробнее

Показать сообщение отдельно
Lan_Morehell
Сообщений: n/a

чтение определенного элемента массива из файла - C++

02.11.2011, 12:53. Просмотров 995. Ответов 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
int Mass[Msize];           //собственно массив
 
int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)
{
 
//--------------- заполняем массив
        int i;
        srand(time(NULL)); 
        for (i = 0; i < Msize; i++)
        {
                Mass[i]= rand()% 30;
        }
 
//----- записываем в файл
 
DWORD ByteWrite;
DWORD sizemass = sizeof(Mass);
 
HANDLE hFW = CreateFile("C:\\test2.txt",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,NULL);
 
WriteFile(hFW,Mass,sizemass,&ByteWrite,NULL);
 
CloseHandle(hFW);
все работает, в файл пишется, получается набор шестнадцатеричных чисел.. все по заданию, выглядит как:
05 00 00 00 04 00 00 00 11 00 00 00 18 00 00 00

а вот как быть дальше - ума не приложу. Мне надо считать из файла обратно произвольный элемент массива (скажем, третий) и вывести его на экран, причем по файлу нужно перемещаться с помощью SetFilePointer.

У меня получается примерно следующая заготовка:

C++
1
2
3
4
5
6
7
8
9
10
DWORD ByteRead;
 
HANDLE hFR = CreateFile("L:\\test.txt",GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,
 FILE_ATTRIBUTE_NORMAL,NULL);
 
char *element = new char[5];
 
SetFilePointer(hFR, 4, NULL, FILE_BEGIN);
 
ReadFile(hFR,element,sizeof(int),&ByteRead,NULL);
Но это явно неправильно - я ума не приложу, как сделать:
1. как передать функции SetАilePointer правильное смещение, чтобы считывать именно нужный элемент.
2. Правильно ли я его считываю в Char, и правильный ли у него размер, если нет - как понять сколько считывать, чтобы был считан только один элемент
3. Надо ли будет потом преобразовывать считанное в int и как

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