1 / 1 / 1
Регистрация: 23.05.2017
Сообщений: 15
|
||||||
1 | ||||||
Char[] vs string23.07.2017, 19:25. Показов 1026. Ответов 13
Метки нет (Все метки)
Добрый день!
Столкнулся с такой странной для меня проблемой. Если читать простой текстовый файл то оба варианта рабочие, но если читать png или pdf файл то в варианте со стрингом получается битый файл Просветите что тут происходит, и как можно вариант со стрингом поправить
0
|
23.07.2017, 19:25 | |
Ответы с готовыми решениями:
13
есть массив char. есть строка string. как присвоить значению string-a значение char-a? Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]) Строка: чем отличается строки string, char, char*? Как преобразовать char* в string и вывести переменную string на экран? |
1 / 1 / 1
Регистрация: 23.05.2017
Сообщений: 15
|
|
23.07.2017, 19:44 [ТС] | 3 |
нужно раскоментировать
Код
//ofile.write(str.c_str(), size-1); //1) получаем битый файл Код
ofile.write(buf, size-1); //2) получаем полную копию Тоесть это полный код. в параметр просто передать имя файла, картинки например
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
|
23.07.2017, 19:49 | 4 |
Сообщение было отмечено maxmail как решение
Решение
maxmail, как минимум вы интепретируете бинарный файл как "С-строку" (null-terminated string) в конструкторе std::string и strcmp, поэтому всё сломается на первом 0 или его отсутствии.
Добавлено через 1 минуту string c "нулями" можно создать другим конструктором, где 2-м аргументом идёт размер.
2
|
1 / 1 / 1
Регистрация: 23.05.2017
Сообщений: 15
|
|
23.07.2017, 19:52 [ТС] | 5 |
есть возможность используя стринг, как то считать бинарный файл и записать? или стринг в данном случае не подходит совсем?
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
|
23.07.2017, 19:53 | 6 |
strcmp по нормальному со бинарными данными работать не будет никак.
Добавлено через 1 минуту Можно. Я уже написал, как можно сконструировать объект. Потом не используйте функции для работы с С-строками (string::c_str, strcmp и т.д.).
1
|
1 / 1 / 1
Регистрация: 23.05.2017
Сообщений: 15
|
|
23.07.2017, 19:58 [ТС] | 7 |
а как потом достать из стринга массив байт, если нельзя использовать с_str() ?
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
|
23.07.2017, 20:02 | 9 |
1
|
1 / 1 / 1
Регистрация: 23.05.2017
Сообщений: 15
|
|
23.07.2017, 20:03 [ТС] | 10 |
всем спасибо огромное, решил свою проблему на этапе конструирования стринга с 2 параметрами!
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
||||||
23.07.2017, 20:04 | 11 | |||||
GbaLog-, там вроде есть конструктор
0
|
GbaLog-
|
23.07.2017, 20:08
#12
|
0
|
gray_fox
|
23.07.2017, 20:11
#13
|
0
|
GbaLog-
|
23.07.2017, 20:19
Char[] vs string
#14
|
0
|
23.07.2017, 20:19 | |
Где и почему используют ту или иную строку std::string, char[], System::String^ ? String, AnsiString или char * ? Что лучше использовать с классами? И как работать с типом string char char* string и константные значения ошибка в программе (cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*') Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |