Как читать / записывать массив C, хранящийся в текстовом файле, созданном с помощью утилиты bin2C

Я создаю приложение, входом которого является файл C, имеющий массив (который создается с помощью bin2C.exe), сегмент кода файла C:

unsigned int MyArray[] = { 0x00000001,0x00000002,0x00000005 ...};

теперь мне нужно прочитать этот массив как текстовый файл и записать его значение в массиве int. Затем мне нужно изменить этот массив и поместить его обратно в текстовый файл, чтобы конечный результат выглядел так:

unsigned int MyArray[] = { 0x39481212,0x33943121,0x3941212 ...};

Пожалуйста, дайте мне знать, как я могу сделать это в C/VisualC++, так как мое приложение находится в VC++ с MFC?

С уважением, Викас

2 ответа

Я думаю, что лучшим способом было прочитать и использовать функции fprintf/sprintf, чтобы получить и поместить данные как int из файла.

вход

открыть файл (fopen) в текстовом режиме и читать строки (fgets а также sscanf)

хранить массив

Вы не можете иметь массив с неопределенным размером. Вы должны либо использовать ограничение размера и оставить некоторые элементы неиспользованными, либо использовать malloc и друзья и управлять хранилищем для массива вручную

модифицировать

использование +, -, * и другие операторы вместе с sqrt, abs, sin и другие функции, доступные в стандартной библиотеке для обработки данных (вы также можете создавать свои собственные функции)

положил его обратно

Лучше записать в новый файл и, если все прошло нормально, удалить старый файл и переименовать новый... так что откройте новый файл (fopen с "w" для параметра режима) в начале при открытии входа; если вход не является строкой массива записи (fputs) верните его напрямую, в противном случае напишите "массируемую" строку; читать и писать все остальные строки.

(C++?) С MFC

Выше для C, Это может работать для C++ с или без MFC

С уважением

Повеселись!

Другие вопросы по тегам