Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 22.04.2020
Сообщений: 1

Чтение с использованием ReadFile, как вывести данные на экран?

01.06.2020, 00:28. Показов 1156. Ответов 2

Студворк — интернет-сервис помощи студентам
Есть текстовый файл, который хранит данные в формате JSON и имеет такое содержание:
JSON
1
2
3
{
"cost":[ 120, 800, 700, 115, 400, 750, 110, 500, 435, 750]
}
Нужно при помощи функций WinAPI CreateFile и ReadFile прочитать данные из этого файла(то есть "120, 800, 700,....") и записать их в массив типа string(или в крайнем случае создать массив из массивов char). После этого вывести этот массив на экран, через консоль, в идеале при помощи обычного цикла с cout

Я нашёл код, который частично выполняет эту задачу.
Он считывает все данные из файла в переменную типа char* под названием buffer, но он считывает их одной строкой и не понятно, как вывести их в консоль.
Что нужно сделать, что бы разделить эту строку и поместить данные из файла в такой массив???
C++
1
2
3
4
{
const int razm = 20;
string buf[razm];
}
Сам код программы:


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
39
40
41
42
43
44
#include <Windows.h>
#include <string.h>
 
#define SIZE_BUFFER 260
#define PATH L"D:/1/json.txt"
 
using namespace std;
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR pCmdLine, int nCmdShow)
{
    //Открываем файл
    HANDLE hFile = CreateFile(PATH,
        GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ,
        NULL,
        OPEN_ALWAYS,
        FILE_ATTRIBUTE_NORMAL,
        NULL);
 
    OVERLAPPED olf = { 0 }; //Структура, в которой задана позиция в файле
 
    LARGE_INTEGER li = { 0 };
 
    li.QuadPart = 0;
    olf.Offset = li.LowPart;
    olf.OffsetHigh = li.HighPart;
 
    char* buffer = (CHAR*)calloc(SIZE_BUFFER + 1, sizeof(CHAR));
    DWORD iNumRead = 0;//Параметр, который получает кол-во считанных байт
 
    if (!ReadFile(hFile, buffer, SIZE_BUFFER, &iNumRead, &olf))
        return 1;
    if (olf.Internal == -1 && GetLastError())
        return 2;
 
        //cout << buffer << endl;
 
    olf.Offset += iNumRead;//добавляем кол-во прочитанных байт
 
 
    system("pause");
    CloseHandle(hFile);
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.06.2020, 00:28
Ответы с готовыми решениями:

Не приходят данные из COM порта при использовании ReadFile()
Я студент на удалёнке. Требуется написать лабораторную по отправке и получению данных из COM. Само...

Разница между ReadFile() и ReadConsole() при чтении с консоли?
разница между ReadFile() и ReadConsole() при чтении с консоли? Просто в задании сказано...

Чтение из файла ReadFile
проблема такова что я не могу понять, как сделать условие вида: если при чтении файла нашли...

2
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
01.06.2020, 11:17
Цитата Сообщение от RalphTR Посмотреть сообщение
Что нужно сделать, что бы разделить эту строку и поместить данные из файла в такой массив???
Наверное, научится программировать для начала, без этого никак не получится.
А так - воспользуйся regex.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
01.06.2020, 11:41
RapidJSON в помощь. Или другая библиотека.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.06.2020, 11:41
Помогаю со студенческими работами здесь

Чтение файла ReadFile и вывод
HANDLE myFile; DWORD m; wchar_t cBuffer; myFile = CreateFile(L&quot;c:\\currentversion1.txt&quot;,...

Ошибка 87 "Неверный параметр" при чтении файла (ReadFile)
Пытаюсь прочитать структуру из файла, но при этом выскакивает ошибка 87 - неверный параметр. Вот...

Чтения результатов ввода со сканера RS-232(com-port) через ReadFile/CreateFile WinAPI
Доброго времени суток. Есть задача, считать информацию со сканера RS-232 (com-port). Как...

Зацикливание при чтении COM-порта в функции ReadFile()
Создал класс Transmit для работы с виртуальным COM-портом ПК. Transmit.h #include...

(C++, asm, winapi) Readfile: Нарушение прав доступа при чтении
Задача: нужно из С++ в ассемблерной вставке обработать текстовый файл, используя функции WinAPI. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru