|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Код: plaintext 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. 32. 33. 34. 35. 36. 37. 38.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 17:27 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Хм... Вот этот цикл КМК имеет слабо-доказуемое условие останова. Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 17:43 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Код: plaintext 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. 32. 33. 34. 35. 36. 37. 38. 39.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 17:54 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab, Ваша проблема элементарно решается в отладчике. И можно было бы конкретизировать вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 17:55 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab, И кстати, а почему у вас кодировка utf8, а читаете вы wchar_t? Это разные вещи ваще. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 17:57 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton Хм... Вот этот цикл КМК имеет слабо-доказуемое условие останова. Код: plaintext 1.
проблемы с бесконечным циклом тут нет: в самом крайнем случае мы дойдем до конца файла, и ch получит значение (W)EOF, тогда цикл должен остановиться ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 17:59 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
petrav mini.weblab, И кстати, а почему у вас кодировка utf8, а читаете вы wchar_t? Это разные вещи ваще. :) 1) а чем же читать utf8??? 2) а на что смотреть в отладчике? в общем, petrav, говорите, что нужно сделать, потому что я застряла :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:03 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab mayton Хм... Вот этот цикл КМК имеет слабо-доказуемое условие останова. Код: plaintext 1.
проблемы с бесконечным циклом тут нет: в самом крайнем случае мы дойдем до конца файла, и ch получит значение (W)EOF, тогда цикл должен остановиться Обоснуй почему обрамляющий цикл должен завершиться. Там break? Или throw exception? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:03 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab petrav mini.weblab, И кстати, а почему у вас кодировка utf8, а читаете вы wchar_t? Это разные вещи ваще. :) 1) а чем же читать utf8??? 2) а на что смотреть в отладчике? в общем, petrav, говорите, что нужно сделать, потому что я застряла :-) Если файл в utf-8 то каждый символ занимает от одного до четырёх байт. Вы символы пытаетесь читать в 2-ва байта и анализировать. Не знаю как это может работать, а если в файле ещё и BOM... В отладчике смотреть, что за данные, почему зациклились и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:09 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
feof: https://en.cppreference.com/w/c/io/feof iswalpha: https://en.cppreference.com/w/c/string/wide/iswalpha ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:11 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
(раскачиваясь на стуле) Не знаю. Не нравится мне такой подход. Есть функция. iswalpha() У нее - детерминированное поведение для символов. EOF - это аналог null. Отсутствие символа. В некоторых источниках пишут что EOF = -1 И кажется где-то у нас даже топик был по поводу EOF. Копья ломали... Не знаю. Не могу я принять такое в code-review. Какая-то кастомизация. А если-б EOF был равен "дохлой корове" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:15 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab, а ты, дорогая мне не кидай линки на справочник. Твоя позиция - слабая. Твой код - нерабочий. И ты здесь доказываешь правоту неработающего кода просто вместо того чтобы устранить спорный момент или просто code-smell. Ну пиши больше code-smells. Разви-ж я тебя остановлю? Дай бох чтоб коллеги критиковали. Мой-то совет тебе я так понимаю не нужен. Что отладчик показывает? Зациклилась? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:18 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
petrav, 1) у меня wchar_t занимает 4 байта (я знаю, что размер wchar_t зависит от компилятора и это плохое решение) 2) как же мне прочитать UTF8?? (чтобы можно было функции использовать из wchar.h ??) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:22 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab petrav, 1) у меня wchar_t занимает 4 байта (я знаю, что размер wchar_t зависит от компилятора и это плохое решение) 2) как же мне прочитать UTF8?? (чтобы можно было функции использовать из wchar.h ??) Не знаю. Там вообще много подводных камней. Я бы читал сразу целыми строками, а не посимвольно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:26 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton mini.weblab, а ты, дорогая мне не кидай линки на справочник. Твоя позиция - слабая. Твой код - нерабочий. И ты здесь доказываешь правоту неработающего кода просто вместо того чтобы устранить спорный момент или просто code-smell. Ну пиши больше code-smells. Разви-ж я тебя остановлю? Дай бох чтоб коллеги критиковали. Мой-то совет тебе я так понимаю не нужен. Что отладчик показывает? Зациклилась? линки я для удобства накидала, а не потому что в тебе сомневаюсь :-) я не доказываю свою правоту, просто я объясняю, почему я так сделала, уж я-то знаю что код не рабочий, но не могу понять почему. просто если я не объясню почему я так сделала, как же ты поймешь, что мне непонятно? а конструктивную критику я во внимание всегда принимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:29 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab mayton mini.weblab, а ты, дорогая мне не кидай линки на справочник. Твоя позиция - слабая. Твой код - нерабочий. И ты здесь доказываешь правоту неработающего кода просто вместо того чтобы устранить спорный момент или просто code-smell. Ну пиши больше code-smells. Разви-ж я тебя остановлю? Дай бох чтоб коллеги критиковали. Мой-то совет тебе я так понимаю не нужен. Что отладчик показывает? Зациклилась? линки я для удобства накидала, а не потому что в тебе сомневаюсь :-) я не доказываю свою правоту, просто я объясняю, почему я так сделала, уж я-то знаю что код не рабочий, но не могу понять почему. просто если я не объясню почему я так сделала, как же ты поймешь, что мне непонятно? а конструктивную критику я во внимание всегда принимаю Добавь вывод текущего символа на экран в hex code. И мы быстро диагностируем проблему. Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:33 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
petrav, 1) по строка прочитать не проблема, только я не понимаю, как это может помочь проблема в том, что в стандатной библиотеке, нет стандартного решения для работы с UTF8, т.е надо брать либо готовую библиотеку, которая уже умеет это делать, либо писать все с нуля 2) я не знаю на что смотреть в дебагере, я прошлась по всем командам, и зацикливания не было, но последний printf в первом примере кода почему-то не выводится (а во втором - все нормально) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:39 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblabкак же мне прочитать UTF8?? (чтобы можно было функции использовать из wchar.h ??) Читай как char. Потом перекодируй в wchar_t любым доступным способом: от iconv до самопальной процедуры в пять строчек. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:43 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton, 1) последние строки после файлового текста не печатаются Код: plaintext 1. 2.
2) все нормально распечатывается Код: plaintext 1. 2.
Это я в printf напечатала ch last: 000000000000000000000000FFFFFFFF ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 18:53 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab petrav, 1) по строка прочитать не проблема, только я не понимаю, как это может помочь проблема в том, что в стандатной библиотеке, нет стандартного решения для работы с UTF8, т.е надо брать либо готовую библиотеку, которая уже умеет это делать, либо писать все с нуля Читаешь сразу всю строку в char[], потом попробуй std::mbrlen. Но что дальше делать я не знаю если нужно работать именно в utf-8. mini.weblab 2) я не знаю на что смотреть в дебагере, я прошлась по всем командам, и зацикливания не было, но последний printf в первом примере кода почему-то не выводится (а во втором - все нормально) Ну да что-то странное у тебя творится или ты воспринимаешь странно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 19:30 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
petrav, общая задача была прочитать и вывести все слова из файла. 1) я хотела сделать бэкэнд для WordCloud, поэтому UTF8 (это для практики) 2) по поводу пункта 2: я там вижу один баг: незакрытый файл. но это не объяснятет странное поведение printf. выглядит так как будто там разные потоки для putwchar и printf ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 21:04 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Норм. Печатается вроде-бы Код: plaintext 1. 2. 3. 4. 5. 6.
Код: plaintext 1.
Версия о раздельных буферах для форматной печати - правдоподобна. Надо просто почитать об этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 22:00 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Переделал немного. Для сплита на слова - удобнее не альфа-символы проверять а все-все символы что не являются разделителями. Так точнее. Да этот BOM еще мешает спереди. readme.txt Код: plaintext 1. 2. 3. 4. 5. 6. 7.
word_count.c Код: plaintext 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. 32. 33. 34. 35. 36. 37. 38. 39.
Вот здесь первый символ - херня какая-то. Чортов бим-бом. Код: plaintext 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. 32. 33. 34. 35.
Вообще надо на С++ переходить. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 22:48 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
А вот этот же текстовый файл - сквозь призму hexdump. Вобщем первые два байта d0 a1 - это как раз буква "C" в первом предложении. BOM-заголовка нет. Так мой Midnight Commander создает текстовые файлы utf-8. А наше приложение что-то имеет на этот счет. И глотает первую букву оставляя мусор. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 22:55 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton А вот этот же текстовый файл - сквозь призму hexdump. Вобщем первые два байта d0 a1 - это как раз буква "C" . я с тобой не согласна, d0 a1 это 4 байта, а вообще последнее время ты слишком бурно на все реагируешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 23:46 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Ошибки проверять Пушкин будет?.. man fwgetcIf a wide-character conversion error occurs, it sets errno to EILSEQ and returns WEOF. Ну и указывать же надо кодировку, не полагаясь на неестественный интеллект: man fopenIn addition to the above characters, fopen() and freopen() support the following syntax in mode: ,ccs=string The given string is taken as the name of a coded character set and the stream is marked as wide-oriented. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 00:46 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 02:14 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab как же мне прочитать UTF8?? (чтобы можно было функции использовать из wchar.h ??) UTF8 - это боль. Сишники его ненавидят. Конвертируй файл в кои-8р. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 04:43 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
crutchmaster mini.weblab как же мне прочитать UTF8?? (чтобы можно было функции использовать из wchar.h ??) UTF8 - это боль. Сишники его ненавидят. Конвертируй файл в кои-8р. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 05:00 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
a guest, Это для ностальгирующих мсдос олдфагов. Для современных пацанов - только бнопня кои8р! Потому что её можно прочитать, после потери 8-го бита! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 05:01 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
crutchmaster Для современных пацанов - только бнопня кои8р! Потому что её можно прочитать, после потери 8-го бита! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 06:21 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Ну и ломайте себе голову на си со своим хрюникодом! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 07:32 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab mayton А вот этот же текстовый файл - сквозь призму hexdump. Вобщем первые два байта d0 a1 - это как раз буква "C" . я с тобой не согласна, d0 a1 это 4 байта, а вообще последнее время ты слишком бурно на все реагируешь. Точно 4 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 08:57 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton mini.weblab пропущено... я с тобой не согласна, d0 a1 это 4 байта, а вообще последнее время ты слишком бурно на все реагируешь. Точно 4 ? Буквы же четыре — значит и байта четыре. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 09:00 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Мда... нас ждут большие трудности впереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 09:01 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
crutchmaster mini.weblab как же мне прочитать UTF8?? (чтобы можно было функции использовать из wchar.h ??) UTF8 - это боль. Сишники его ненавидят. Конвертируй файл в кои-8р. Будет вам. Толстые тролищи. Почему UTF8 - боль для С++? Почему это ниразу ни боль для сишарпа? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 09:23 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton crutchmaster пропущено... UTF8 - это боль. Сишники его ненавидят. Конвертируй файл в кои-8р. Будет вам. Толстые тролищи. Почему UTF8 - боль для С++? Почему это ниразу ни боль для сишарпа? C# же строки хранит в utf-16. Кстати, почему у комьюнити проявляется такая ненависть к wchar_t, но нет ненависти к QString? Ведь это же одно и тоже. Питон 3 тоже, кажется, строки в utf-16 хранит. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 09:35 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab, Он печатает, и выводит. Просто ты это не видишь. Скорее всего, программа завершается некорректно ДО этого вывода. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 09:35 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton Почему UTF8 - боль для С++? Почему это ниразу ни боль для сишарпа? В сишарпах и явах это всё спрятано под копот в виде какого-нибудь utf16/32, строки хешированы, с посчитанной длинной и т.д. В плюсах тоже надо переводить во что-нибудь с фиксированным числом байт и так уже работать. А utf8 - это вообще боль хоть для кого, просто не все его трогают руками. Посмотри на zalgo-пасту, например ( https://lingojam.com/ZalgoText ). Как это говно парсить вообще? Там может быть длинна строки хоть сколько, а символа 4. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 09:45 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
crutchmaster mayton Почему UTF8 - боль для С++? Почему это ниразу ни боль для сишарпа? В сишарпах и явах это всё спрятано под копот в виде какого-нибудь utf16/32, строки хешированы, с посчитанной длинной и т.д. В плюсах тоже надо переводить во что-нибудь с фиксированным числом байт и так уже работать. А utf8 - это вообще боль хоть для кого, просто не все его трогают руками. Посмотри на zalgo-пасту, например ( https://lingojam.com/ZalgoText ). Как это говно парсить вообще? Там может быть длинна строки хоть сколько, а символа 4. Есть линуксовая утилита. Iconv. Это такой себе швейцарский армейский нож для кодировок. Конвертит из любых кодовых страниц в любые. В лучших традициях "C" Linux она должна быть разработана на сях. И в ней каким-то образом должны быть уже решены все задачи которые мы тут подняли. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 09:59 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton Есть линуксовая утилита. Iconv. Так я о том и говорю. Надо сделать iconv в кои8р, например, и там уже всё сведётся к перебору байт. А трогать прямо руками utf8 - не надо. Там не всё так однозначно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 10:39 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Я тебя прошу. Давай koi8 забудем как страшный архаизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 10:41 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
petrav C# же строки хранит в utf-16. petrav Питон 3 тоже, кажется, строки в utf-16 хранит. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 10:44 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
a guest petrav C# же строки хранит в utf-16. petrav Питон 3 тоже, кажется, строки в utf-16 хранит. Ну а что насчёт QString? Там тоже utf-16. Тоже поимела пропаганда? Я вообще всей этой дури понять не могу. Я сделал бы wchar_t размером шесть байт и закрыл бы проблему просто и навсегда. Текст занимает минимальный размер в памяти по сравнению со всем остальным. Если есть террабайтные библиотеки, ну там можно архиватор применить. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 10:50 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton Я тебя прошу. Давай koi8 забудем как страшный архаизм. Что это архаизм? Я знаю целых 2 человека, которые на полном серьёзе во всю юзают кои8р! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 10:53 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
a guest Ну так это легаси. била гейца поимела пропаганда что 16 бит хватит всем, вот в NT засунули двухбайтовую кодировку. Теперь мучаются, тащат везде это УГ. преобоазования между utf-8, utf-16, utf-32 тривиальны ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 10:57 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
petrav Ну а что насчёт QString? Там тоже utf-16. Тоже поимела пропаганда? petrav Я вообще всей этой дури понять не могу. Я сделал бы wchar_t размером шесть байт ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 11:18 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Изопропил a guest Ну так это легаси. била гейца поимела пропаганда что 16 бит хватит всем, вот в NT засунули двухбайтовую кодировку. Теперь мучаются, тащат везде это УГ. преобоазования между utf-8, utf-16, utf-32 тривиальны ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 11:19 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
a guest petrav Ну а что насчёт QString? Там тоже utf-16. Тоже поимела пропаганда? Без понятия. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 11:53 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
a guest Изопропил пропущено... преобоазования между utf-8, utf-16, utf-32 тривиальны предлагаешь utf-32 всегда и везде? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 12:07 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
crutchmaster В плюсах тоже надо переводить во что-нибудь с фиксированным числом байт и так уже работать. P.S. Выкидывать надо UTF-16/-32, как рассадник опасных иллюзий. Это уже даже до мелкомягких дошло. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 12:31 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Я заметил что любой топик с кодировками всегда скатывается к обсуждению внутреннего представления строк таких как char *, wchar_t *, char16_t *, char32_t std::string, CString, TString, AnsiString, QString e.t.c. Как будто-бы есть какая-то недосказанность. Или несовершенство. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 12:45 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton Как будто-бы есть какая-то недосказанность. Или несовершенство. Есть одна совершенная кодировка, ну ты понял, какая. Basil A. Sidorov Только так оно работать не будет. Почти никогда не будет работать. Почему это? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 12:48 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
crutchmaster Почему это? А в ситуации, когда у вас есть (только) "массив байт, представляющий строку символов", фундаментальным преимуществом UTF-8 становится обратная совместимость с US-ASCII. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 13:35 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Basil A. Sidorovфундаментальным преимуществом UTF-8 становится обратная совместимость с US-ASCII. Ага, то есть тем самым char фиксированного размера, который "надо выкидывать". Ню-ню... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 13:57 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
1) я сделала проверку на аварийный выход $? в обоих случаях программа нормально завершается 2) дальше пока еще не разобралась ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:00 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton, ну хорошо, 2 просто я запуталась ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:02 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab$? Это, вообще-то, проверка не на "аварийный выход", а на код возврата... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:03 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab mayton, ну хорошо, 2 просто я запуталась Посмотри мой сорц. Там есть строгое правило выхода. И есть более улучшенная фильтрация на слова и не-слова. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:05 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, но если код возврата 0, то аварийного выхода не было? так или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:08 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblabтак или нет? В принципе да. Хотя есть варианты. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:16 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Basil A. Sidorovфундаментальным преимуществом UTF-8 становится обратная совместимость с US-ASCII. Ага, то есть тем самым char фиксированного размера, который "надо выкидывать". Ню-ню... char можно сделать 32х битным. Но это не означает что размер string типа будет умножаться на количество символов. Грубо говоря string - это стрим из "плавающих" символов. Хотя на итераторе вы можете получать 32х битный символ если вам так хочется рассмотреть его отдельно от строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:20 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Unicode in C and C++: https://www.cprogramming.com/tutorial/unicode.html ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:45 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
По поводу 16 бит и Microsoft. Мне кажется что спор между правильным и неправильным способом представления строк может перейти в плоскость того важнее ли корпоративный стандарт или общий . Кажется что еще на заре Windows-NT 4.0 они уже определили API который работает с 16 разрядным символом. Использует ли MS понятие суррогатных пар - ХЗ. Я не знаю. Кто в теме - просветите plz. Я имею в виду кодеров именно под платформу Windows. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 15:03 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Они определили API, которое работало с UCS-2. А потом просто чтобы не париться объявили его UTF-16, пользуясь их совместимостью. На суррогаты, как и все остальные, забили, ограничившись созданием функций нормализации. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 15:17 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton Использует ли MS понятие суррогатных пар - ХЗ. Я не знаю. UCS-2 был в NT с самого начала (3.1) UTF-16 использует начиная c windows 2000 . многие не заморачиваются и не различают UCS-2 и UTF-16 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 15:25 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Ага, то есть тем самым char фиксированного размера, который "надо выкидывать". Ню-ню... Поскольку в юникоде не используются коды в диапазоне 128-255, то в юникоде нет других кодировок с символом фиксированной ширины. А вот составные символы есть даже в кирилице. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 17:13 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton Кажется что еще на заре Windows-NT 4.0 Во-вторых, я не зря использовал формулировку "даже до мелкомягких дошло ...": в более-менее свежей десятке уже предлагается включение поддержки UTF8 в системе. В 1809 - как бета. Но тренд - характерный. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 17:18 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
а я еще одну программу написала Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
вопрос: почему это так странно работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 17:26 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab, у тебя Windows? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 17:57 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab вопрос: почему это так странно работает? так вижу ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 18:08 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab вопрос: почему это так странно работает? Потому что по стандарту это неопределенное поведение. Each stream has an orientation. After a stream is associated with an external file, but before any operations are performed on it, the stream is without orientation. Once a wide character input/output function has been applied to a stream without orientation, the stream becomes a wide-oriented stream. Similarly, once a byte input/output function has been applied to a stream without orientation, the stream becomes a byte-oriented stream. Only a call to the freopen function or the fwide function can otherwise alter the orientation of a stream. (A successful call to freopen removes any orientation.) ... The three predefined streams stdin, stdout, and stderr are unoriented at program startup. ... Byte input/output functions shall not be applied to a wide-oriented stream and wide character input/output functions shall not be applied to a byte-oriented stream. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 18:16 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton, gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 egorych, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 18:19 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
vAH_O6Vg, я примерно что такое и думала как называется часть стандарта, где это написано? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 18:31 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab, Ссылка на последний черновик стандарта(корявит пост, если попытаться спрятать её под url=) https://web.archive.org/web/20181230041359if_/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf Поиском по тексту находится, но вообще раздел "7.21.2 Streams" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 18:38 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
vAH_O6Vg, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 18:51 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab Unicode in C and C++: https://www.cprogramming.com/tutorial/unicode.html хороший tutorial. и еще там есть код небольшой библиотеки по работе с utf8, и это я, скорее всего, и буду использовать ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 19:46 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mini.weblab mini.weblab Unicode in C and C++: https://www.cprogramming.com/tutorial/unicode.html хороший tutorial. и еще там есть код небольшой библиотеки по работе с utf8, и это я, скорее всего, и буду использовать Так и не понял. Ты решила на чистых сях писать? Потому что исходник топика был как раз в этом стиле. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 19:50 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Удивительная вещь этот utf-8. Очевидно глупая вещь, которая завоёвывает сознание. Ну или завоевала. Кривая херня созданная что бы сэкономить пол процента оперативки, но поломавшая все привычные (и естественные) алгоритмы работы со строками. Осталось придумать std::vector<utf8_int> что бы с таким контейнером тоже ничего не работало. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 20:18 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Давайте разработаем utf8_int что бы инты меньше 128 помещались в один байт. Ну и дальше всё по аналогии от одного до четырёх байт. Патент? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 20:21 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
petrav, да смирись уже. Современная строка - это не массив символов. Это - более сложный контейнер. Но имеющий итератор. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 20:31 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton petrav, да смирись уже. Современная строка - это не массив символов. Это - более сложный контейнер. Но имеющий итератор. Что бы смириться нужно воевать, а я далёк по работе от этих utf-8. Меня просто удивляет очевидный бардак в головах у людей. Вот utf-8 им нравится, а wchar_t не нравится. Но почему тогда нравится QString? Или другие языки с хранением строк в utf-16? Почему ради минимальной экономии памяти нужно было сделать так, что в С++ нет итератора по строке? Да и вообще куча алгоритмов отвалилась и всё стало не интуитивно. Что вообще это за такой аргумент: обратная совместимость с ASCII строками? Что поиск работает? Нет. Или только аля printf()? Это что printf() такое писец достояние, что нужно всё через *опу сделать? Просто у людей нет системного и математического мышления. Я понимаю, что у многих тут код в стиле: Код: plaintext 1.
Но ведь этим мир IT не ограничивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 21:17 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
mayton mini.weblab пропущено... хороший tutorial. и еще там есть код небольшой библиотеки по работе с utf8, и это я, скорее всего, и буду использовать Так и не понял. Ты решила на чистых сях писать? Потому что исходник топика был как раз в этом стиле. это небольшой личный пет проект, поэтому почему бы и нет? функцию, которая считывает слова из текста и выдает N наиболее часто встречающихся слов буду точно на С писать графики буду делать на Питоне, и может быть на JS ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 23:22 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
petrav, я выбрала UTF-8 из практических соображений, в идеале программа должна работать так 1) пользователь вводит адрес веб-сайта, статьи, текстового файла, etc 2) и в ответ получает список ключевых слов + визуализацию 3) я думаю будет полезно поработать с кодировками и конвертацией текста :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 23:28 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
Изопропил a guest пропущено... И бесплатны. Даже отрицательные по стоимости — чем больше преобразований, тем быстрее программа работает. предлагаешь utf-32 всегда и везде? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 03:03 |
|
почему printf не печатает строку в консоли ?
|
|||
---|---|---|---|
#18+
petrav Удивительная вещь этот utf-8. Очевидно глупая вещь, которая завоёвывает сознание. Ну или завоевала. Кривая херня созданная что бы сэкономить пол процента оперативки, но поломавшая все привычные (и естественные) алгоритмы работы со строками. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 03:06 |
|
|
start [/forum/topic.php?all=1&fid=57&tid=2017387]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
97ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 186ms |
0 / 0 |