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

Не слишком корректное сохранение в HEX - C++

Восстановить пароль Регистрация
 
Planet Mars
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 5
15.11.2015, 21:30     Не слишком корректное сохранение в HEX #1
Здравстуйте! Есть проблема.
C++
1
2
3
for(pos = 32; pos > -1; pos--) {
    inp[pos] = ' ';
}
Инициализирую массив символов(char), при помощи scanf я считываю строку с консоли и заношу её файл данным кодом(предусматривается всего лишь одно слово, по этому запись идёт до след. пробела):
C++
1
2
3
4
5
6
7
8
for(;;) {
         if (charToPut == ' ') {
           break;
         }
    charToPut = inp[pos];
    putc(charToPut, file);
    ++pos;
}
В файле появляется 16-теричный код(HEX код). Данный код я расшифровал при помощи онлайн-ресурсов.
Например, введённое слово в консоль - "Hello". Сохранили, закрыли полиш в нэт. Перевели HEX в текст. На выходе ловим слово "Hello" + квадратную кракозябру. Что я делаю не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2015, 21:30     Не слишком корректное сохранение в HEX
Посмотрите здесь:

C++ std::ios::hex или std::ios.hex
Не корректное выполнение сортировки двумерного массива C++
C++ Корректное написание логических операций
Корректное удаление вектора векторов C++
Требуется корректное объяснение C++
C++ Корректное считывание csv
Корректное высвобождение памяти в list C++
Корректное освобождение памяти из-под списка C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Valera_
 Аватар для _Valera_
486 / 368 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
15.11.2015, 21:43     Не слишком корректное сохранение в HEX #2
Цитата Сообщение от Planet Mars Посмотреть сообщение
Что я делаю не так?
задаешь вопрос:
1. Покажи весь код
2. Покажи скрин проблемы (своими рассказами ты только запутал)
3. Вводимое значение.
Planet Mars
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 5
16.11.2015, 17:16  [ТС]     Не слишком корректное сохранение в HEX #3
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
#include "stdio.h"
 
int main(int argc, char const *argv[])
{
        int pos;
        FILE *file;
        file = fopen("shpconfig.cfg", "wt");
        char inp[32];
        for(pos = 32; pos > -1; pos--) {
            inp[pos] = ' ';
        }
        char charToPut;
 
        pointer = inp;
        scanf("%s", inp);
        if (file == NULL) {
                printf("%s\n", "Error");    
        } else {
                pos = 0;
                for(;;) {
                    if (charToPut == ' ') {
                        break;
                    }
                    charToPut = inp[pos];
                    putc(charToPut, file);
                    ++pos;
                }
        }
        fclose(file);
        return 0;
}
Строка можут быть любая. Я написал "Hela".
Получается это же Hela + символ квадрата с 4 нулями(походу в шрифте не предусмотрен этот символ, вот и заменили на этот значёк)

Добавлено через 19 часов 22 минуты
В файле выбивает это: 4865 6c61 0020
Можешь проверить
Yandex
Объявления
16.11.2015, 17:16     Не слишком корректное сохранение в HEX
Ответ Создать тему
Опции темы

Текущее время: 11:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru