|
почему 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 |
|
|
start [/forum/topic.php?fid=57&msg=39974993&tid=2017387]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 262ms |
total: | 414ms |
0 / 0 |