Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
привет Кто-нибудь может объяснить почему эта функция Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. возвращает result=DSFGDFээээ««««««««оюоюою ??? Откуда всё это берётся в массиве у которого 6 элементов? (на остальное не обращаем внимания, это тест) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 21:57 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
а если так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 22:06 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
rigorMortisОткуда всё это берётся в массиве у которого 6 элементов? Из ошибки в функции, которой ты выводишь этот массив на экран. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 22:28 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
Да, так никакого мусора нет (странно как-то всё). Только вот проблема если вместо char str1[] = "DSFGDF"; брать строку которая передаётся в функцию то ошибка при выполнении "нарушение прав доступа при записи по адресу": Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Какие ещё права нужны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 22:34 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
rigorMortis, а если так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 22:40 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
Картежник, тогда уж надо добавить result[length] = 0; Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Спасибо, помогло. Блин, сложно как всё стало. Последний раз кодил на с++ больше 10 лет назад. Ща сел простенькую прогу написать, элементарных вещей сделать не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 22:49 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
rigorMortisКартежник, тогда уж надо добавить result[length] = 0; тогда надо сделать Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 22:54 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
rigorMortisint length = strnlen_s(str,100); А нафига ты массив объявляешь размером 6, а тут говоришь, что он 100? Врать нехорошо, за это тебя и карает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 23:01 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, int length = strnlen_s(str, 100); определяет длину строки. Что мне нужно было подставить вместо 100? Если бы я знал длину я бы не вызывал strnlen_s. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 23:07 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
rigorMortisЕсли бы я знал длину я бы не вызывал strnlen_s. Ты знаешь длину. Ты её вот здесь указал: new char[6] Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 23:21 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
rigorMortisвозвращает result=DSFGDFээээ««««««««оюоюою ??? Откуда всё это берётся в массиве у которого 6 элементов? (на остальное не обращаем внимания, это тест) Привет. А ты чего передаёшь массив символов в функцию, которая ожидает null terminated string? Ты думаешь, как strnlen_s длину строки высчитывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 23:55 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
BagaBaga, ну я не знаю. А как предавать тогда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 01:54 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
rigorMortis, На, читай букварь: https://en.wikipedia.org/wiki/Null-terminated_string И пока не прочитаешь, ничего сюда не пиши. Хватит уже позориться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 01:59 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
rigorMortisпривет Кто-нибудь может объяснить почему эта функция Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. возвращает result=DSFGDFээээ««««««««оюоюою ??? Откуда всё это берётся в массиве у которого 6 элементов? (на остальное не обращаем внимания, это тест) Эта функция никак не может возвращать то, что вы написали. Она возвращает указатель. Когда вы пытаетесь вывести на поток вывода строку расположенную по этому указателю, происходит "чтение" до тех пор, пока не встретится терминальный ноль '\0'. Как вы понимаете, он у вас не встретится за эти 6 символов. При проектировании строки, всегда оставляйте 1 символ под терминальный ноль. По второму вопросу, в первом приближении код должен быть такой Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 02:18 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
rigorMortisBagaBaga, ну я не знаю. А как предавать тогда? Как думаешь, какое число вернёт этот код? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Поймёшь что и почему - вопросы исчезнут сами собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 08:19 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
BagaBagarigorMortisBagaBaga, ну я не знаю. А как предавать тогда? Как думаешь, какое число вернёт этот код? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Поймёшь что и почему - вопросы исчезнут сами собой. rigorMortis, выше -- очень толковый совет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 12:10 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
Да я понял уже. Взял код от SashaMercury. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 12:56 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
rigorMortisДа я понял уже. Взял код от SashaMercury. Но учти, это не для продакшн кода, будет работать в одной только кодировке -- ANSI (ASCII и её расширениях). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 12:59 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
MasterZivrigorMortisДа я понял уже. Взял код от SashaMercury. Но учти, это не для продакшн кода, будет работать в одной только кодировке -- ANSI (ASCII и её расширениях). а как бы выглядел "продакшн" код ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 15:48 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
SashaMercuryMasterZivпропущено... Но учти, это не для продакшн кода, будет работать в одной только кодировке -- ANSI (ASCII и её расширениях). а как бы выглядел "продакшн" код ? в принципе это невозможно так сделать, изменить case в том же буфере -- длины символом (в байтах) могут быть разные, т.е. результат может не влезть в исходный буфер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 15:53 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
то есть в других кодировках объём памяти на разные регистры одной и той-же буквы могут отличаться ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 15:56 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
SashaMercuryто есть в других кодировках объём памяти на разные регистры одной и той-же буквы могут отличаться ? Конечно. Не для всех кодировок, естественно. Но приложение с поддержкой разных должно быть на это завязано, безусловно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 16:04 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
SashaMercuryMasterZivпропущено... Но учти, это не для продакшн кода, будет работать в одной только кодировке -- ANSI (ASCII и её расширениях). а как бы выглядел "продакшн" код ? Форумчане, ну не надо троллить... смешивать многобайтовые кодировки и классические С-строки (NULL-terminated string) - изыскание приключений на причинное место. Тогда уж не забудьте, что даже в ASCII toUpper будет худо-бедно работать на первых 127 символах (т.е. латинском алфавите), а вот на "расширенных" (в коих и хранятся "национальные" кодировки) - далеко не факт и сильно зависит от настроек локали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 18:59 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
BagaBagaSashaMercuryпропущено... а как бы выглядел "продакшн" код ? Форумчане, ну не надо троллить... смешивать многобайтовые кодировки и классические С-строки (NULL-terminated string) - изыскание приключений на причинное место. Тогда уж не забудьте, что даже в ASCII toUpper будет худо-бедно работать на первых 127 символах (т.е. латинском алфавите), а вот на "расширенных" (в коих и хранятся "национальные" кодировки) - далеко не факт и сильно зависит от настроек локали... ну, в нормально сделанных CRT будет работать... но вообще то уже давно пора забрать про однобайтные кодировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 20:48 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
MasterZivно вообще то уже давно пора забрать про однобайтные кодировки. Далеко не все пишут всемирно используемый ширпотреб. А два байта больше одного ровно в два раза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 20:51 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
MasterZiv, про однобайтовые кодировки ещё очень долго не удастся забыть - слишком много средств работает именно с ними. И далеко не все консоли используют их. В том же "самом популярном" до сих пор в консоли cp866 используется. Да и на что ориентироваться? UTF8? UTF16? USC? USC-2? KIO8R? Да и многие nix внутри всё ещё однобайтовые... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 21:37 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
MasterZivSashaMercuryто есть в других кодировках объём памяти на разные регистры одной и той-же буквы могут отличаться ? Конечно. Не для всех кодировок, естественно. Но приложение с поддержкой разных должно быть на это завязано, безусловно. Не знал этого. Спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 01:42 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
BagaBagaSashaMercuryпропущено... а как бы выглядел "продакшн" код ? Форумчане, ну не надо троллить... смешивать многобайтовые кодировки и классические С-строки (NULL-terminated string) - изыскание приключений на причинное место. Тогда уж не забудьте, что даже в ASCII toUpper будет худо-бедно работать на первых 127 символах (т.е. латинском алфавите), а вот на "расширенных" (в коих и хранятся "национальные" кодировки) - далеко не факт и сильно зависит от настроек локали... да я и не "троллил" . В Сообществе такого в принципе нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 01:45 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
SashaMercuryда я и не "троллил" . В Сообществе такого в принципе нет. Не знал этого. Спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 02:50 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
BagaBagaДа и на что ориентироваться? UTF8? UTF16? USC? USC-2? KIO8R? Лучше на UTF-8. Экономит место, поддерживается в консолях Linux, QNX и блокноте Windows 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 09:09 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
SashaMercuryто есть в других кодировках объём памяти на разные регистры одной и той-же буквы могут отличаться ? Вот почитайте, статейка старая, описано доходчиво для понимания. BagaBaga.. Да и на что ориентироваться? UTF8? UTF16? USC? USC-2? KIO8R? А почему бы Вам не предоставить возможность ответа на данный вопрос конечному пользователю Вашего приложения, а не ограничивать его чем-то одним? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 10:00 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
П.С.М.BagaBaga.. Да и на что ориентироваться? UTF8? UTF16? USC? USC-2? KIO8R? А почему бы Вам не предоставить возможность ответа на данный вопрос конечному пользователю Вашего приложения, а не ограничивать его чем-то одним? Я всё же это удовольствие (рассчитывать на все кодировки в любом их сочетании) оставлю Вам. А сам буду исходит из здравого смысла, требований ТЗ и существуюх ограничений. Кои определяются: 1. Планируемой средой выполнения. Если целевая система не поддерживает кодировку, то какой смысл тратить на неё и так ограниченные ресурсы? 2. Используемой средой разработки. Если она не поддерживает выбранную кодировку ... в общем, нескучной отладки. 3. Используемым набором библиотек (фреймвоков). Если библиотеки не поддерживает какую-либо кодировку в принципе, то нужно выбросить либо библиотеку, либо забить на кодировку. 4. Унаследованным кодом, зачастую писавшимся ещё в то время, когда возможности многобайтных кодировок даже не помышляли. Выкинуть уже (пусть как-то) работающую систему из-за любви к искусству ни кто в своём уме не даст. 5. Малой практикой написания кросплатформенных "многокодировочных" приложений. Все успешные используют внутри какуют-то одну, а всё "ионое" перекодируют явным или прозрачным способом, если вообще заморачиваются на это. Если интересно про поддержку кодировок в С++, можно посмотреть, например, вот это - http://goo.gl/dK9KUR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 18:49 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
Я-бы исходил из возможностей интеграции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 18:56 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
BagaBagaMasterZiv, про однобайтовые кодировки ещё очень долго не удастся забыть - слишком много средств работает именно с ними. И далеко не все консоли используют их. В том же "самом популярном" до сих пор в консоли cp866 используется. Да и на что ориентироваться? UTF8? UTF16? USC? USC-2? KIO8R? Да и многие nix внутри всё ещё однобайтовые... Ну не знаю... Я работаю сейчас в основном под Linux, тут просто ВСЁ поддерживает ВСЕ кодировки. А на счёт "что выбрать" -- тут уже тоже давно всё понятно -- UTF8. Войны кодировок кончились. Но ещё раз -- в линуксе как правило все приложения поддерживают все кодировки. Т.е. какую хочешь -- такую и используй, таким образом теперь только время решит, что лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 23:16 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
MasterZiv, с u8, наверное, согласен. Хотя ещё лет пять назад всё было не так однозначно. И для иероглифического письма всё-таки UTF (что 8, что не 8) не самое распространённое решение. У них свой велосипед (как минимум - у японцев). Но это, что называется, не моя целевая аудитория. Про кодировки и прочее. У Вас нормально отработает cat filename | sed 's/право/лево/' > newfile если консоль u8 (или KOI8, или ещё какая), а файл, например, в старой доброй cp866 (или другой, не той, что в консоли)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 08:58 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
* в примере специально использована кирилица. С латиницей, понятное дело, всё должно быть ок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 08:59 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
MasterZiv Но учти, это не для продакшн кода, будет работать в одной только кодировке -- ANSI (ASCII и её расширениях). Тогда опять непонятно. Читаю из файла строку с русскими символами: DIR c:\\лог в char t[20]; записывается "DIR c:\\Лог". Если русских символов в ASCII нет почему выводится нормально? Та же строка из файла, но в wchar_t t[20] записывается "DIR c:\\Ëîã". Из-за чего так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2015, 16:52 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
лет 10 назад уже было все однозначно.... BagaBaga Про кодировки и прочее. У Вас нормально отработает cat filename | sed 's/право/лево/' > newfile если консоль u8 (или KOI8, или ещё какая), а файл, например, в старой доброй cp866 (или другой, не той, что в консоли)? нет, конечно, но export LANG=xxxx и вперед... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2015, 17:43 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
rigorMortisMasterZivНо учти, это не для продакшн кода, будет работать в одной только кодировке -- ANSI (ASCII и её расширениях). Тогда опять непонятно. Читаю из файла строку с русскими символами: DIR c:\\лог в char t[20]; записывается "DIR c:\\Лог". Если русских символов в ASCII нет почему выводится нормально? Та же строка из файла, но в wchar_t t[20] записывается "DIR c:\\Ëîã". Из-за чего так? а вот магия... на самом деле скорее всего там занимаешься все верно, неправильно ты смотришь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2015, 17:46 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
MasterZiv а вот магия... на самом деле скорее всего там занимаешься все верно, неправильно ты смотришь... Отладчик показывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2015, 17:55 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
Или так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. из файла file.txt читаем строку "Новая папка" и записываем её в file1.txt. В итоге в file1.txt оказывается строка "Ќова¤ папка". Из-за чего может быть такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2015, 20:06 |
|
||
|
Непонятки с массивом
|
|||
|---|---|---|---|
|
#18+
MasterZivлет 10 назад уже было все однозначно.... Пусть так. Только STL с юникодом только-только начала дружить, и то не полностью... MasterZivBagaBaga Про кодировки и прочее. У Вас нормально отработает cat filename | sed 's/право/лево/' > newfile если консоль u8 (или KOI8, или ещё какая), а файл, например, в старой доброй cp866 (или другой, не той, что в консоли)? нет, конечно, но export LANG=xxxx и вперед... Так-то можно, но в этом уже никакой магии ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2015, 21:49 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2019080]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 9ms |
| total: | 183ms |

| 0 / 0 |
