Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
12 / 11 / 2
Регистрация: 03.04.2016
Сообщений: 502

Чтение строк переменной длинны из структуры

30.10.2019, 22:59. Показов 782. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Есть файл, данные в нем содержатся согласно такой структуре.
C++
1
2
3
    typedef struct _string {
     WORD ID; WCHAR Name[1]; WORD Padding[1]; WORD Name_2[];
    }string;
В Name и Name_2 содержатся строки в формате Юникод. Начинаю читать данные и все хорошо пока не дохожу до Name_2,
в Name_2 получаются обрезанные значения из Name. Я так понимаю в структуре нет точного значения длинны для строки Name и в тоге, как мне прочитать данные из Name_2 ?

Добавлено через 5 минут
Более того мне надо каким то образом получить sizeof для этой структуры и сдвинуться на следующий блок данных
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2019, 22:59
Ответы с готовыми решениями:

Чтение первых 10-и строк из текстового файла, путь которого взят из переменной
Доброго времени суток. Есть переменная %DPath%, её путь определяется в реестре. И так, значение переменной %DPath% берётся из...

Массивы переменной длинны
Как в программе создаваемой в Borland C++ Builder можно создавать массив переменной длины. В программе которую я пишу мне стало необходимо...

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

4
фрилансер
 Аватар для Алексей1153
6449 / 5648 / 1129
Регистрация: 11.10.2019
Сообщений: 15,037
30.10.2019, 23:38
Name[1] - всего один символ, как там может содержаться строка ?

Name_2 - у тебя вообще указатель (на что, интересно)

Что за файл?

sizeof(string) - скорее всего 12 байтов. но компилятор скажет точнее )
0
12 / 11 / 2
Регистрация: 03.04.2016
Сообщений: 502
31.10.2019, 00:02  [ТС]
Цитата Сообщение от Алексей1153 Посмотреть сообщение
Name[1] - всего один символ
"Мне дали такую задачку.Единичку я поставил иначе компилятор ругается. Я не знаю изначально сколько символов будет в массиве. Name_2 содержит тот же тип данных, не знаю почему так.

Добавлено через 7 минут
Это примерная структура насколько я понимаю. Надо каким то образом получить значения двух строк расположенных согласно такой структуры.

Добавлено через 2 минуты
Как я уже сказал первая строка читается, как прочитать вторую?

Добавлено через 5 минут
Цитата Сообщение от Алексей1153 Посмотреть сообщение
sizeof(string) - скорее всего 12 байтов
Да. Но судя по всему нужны размеры обоих строчек?
0
фрилансер
 Аватар для Алексей1153
6449 / 5648 / 1129
Регистрация: 11.10.2019
Сообщений: 15,037
31.10.2019, 00:03
Цитата Сообщение от zombivadim Посмотреть сообщение
первая строка читается
покажи, какой файл, откуда читаешь, а также код, который читает
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
31.10.2019, 10:35
Цитата Сообщение от zombivadim Посмотреть сообщение
В Name и Name_2 содержатся строки в формате Юникод. Начинаю читать данные и все хорошо пока не дохожу до Name_2,
в Name_2 получаются обрезанные значения из Name. Я так понимаю в структуре нет точного значения длинны для строки Name и в тоге, как мне прочитать данные из Name_2 ?
Это задание на структуры неопределённого размера, причём, по-моему, кривоватое.
Здесь тебе надо сначала выделить буфер под эту структуру, с запасом, чтоб влезла строка Name_2.
Потом прочитать в него ID, name, padding, это по их размеру, а потом читать Name_2 , но не фиксированный размер, а пока не встретится ноль.
Цитата Сообщение от zombivadim Посмотреть сообщение
Более того мне надо каким то образом получить sizeof для этой структуры и сдвинуться на следующий блок данных
Общий пазмер ты здесь получишь, только после того, как прочитаешь Name_2. Следующая запись будет после его завершающего нуля.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2019, 10:35
Помогаю со студенческими работами здесь

Определение длинны пользовательской переменной
Здравствуйте! Прошу помощи у знающих людей :sorry: Есть шаблонная функция которая возвращает максимальный аргумент в случае с int или...

Чтение из файла строки неизвестной длинны
Здравствуйте. Стоит задача писать в файл строку неизвестной длинны, введенную с клавиатуры. А потом считать её из файла. Строку читаю...

Аргументы переменной длинны, принимающие двумерные массивы
Сделал, используя foreach, но не могу расставить скобки в цикле for. Хотелось бы знать на всяк случай как. static void...

Как присвоить переменной индекс последнего элемента в массиве неопределенной длинны?
Есть массив переменной длинны, и мне нужно присвоить переменной индекс последнего элемента массива. Подскажите пожалуйста как это можно...

Удаление строк максимальной длинны
подскажите пожалуйста, какую функцию нужно для того чтобы программа удаляла строки максимальной длины?? Нельзя задавать свои вопросы в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru