Здравствуйте, гость ( Вход | Регистрация )
lanz | Дата 25.2.2013, 9:21 |
Буфер приходится чистить вручную. |
|
Алексей1153 | Дата 22.2.2013, 13:30 |
Вот этот код прекрасно работает: повезло ))) Но я же не знаю, какой длины имя файла введет пользователь. Соответственно, я не знаю, сколько памяти выделять. это в общем случае вполне решабельно: считывать по 1 символу и накапливать в буфере А инициализировать переменные всё равно нужно |
|
x-8973 | Дата 22.2.2013, 13:00 |
lanz, благодарствую) Еще вопрос. Подумал, что раз уж юзать потоки, то юзать их и на выводе данных. Написал
При запуске ничего не вывелось. В принципе, не критично, printf в этом плане отлично справляется) Просто интересно, можно ли поток и для вывода данных использовать) |
|
Iron Bug | Дата 22.2.2013, 12:32 |
если пользоваться стандартным вводом и только под вендой, то можно использовать scanf_s. длина имени файла, вообще говоря, зависит даже не от оси, а от файловой системы. в принципе, можно просто взять какое-то заведомо большое число. однако, как написал lanz, если уж ты собрался юзать Qt, то логично воспользоваться потоками, которые эта библиотека предоставляет. |
|
Wlad | Дата 22.2.2013, 11:43 |
Цитата В Дельфи есть константа MAX_LEN, если мне память не изменяет. Может, и в QT что-то похожее есть? Qt здесь не причем. Есть виндовая переменная MAX_PATH (определена в файле windef.h) равная 260 символам. Это и есть максимальная длина файла с путем к нему. Виндовые функции, работающие с файлами проверяют имя файла на эту длину Это ограничение можно объехать, но это другой вопрос. |
|
lanz | Дата 22.2.2013, 11:20 |
А если серьезно то лучше использовать QTextStream:
|
|
x-8973 | Дата 22.2.2013, 10:51 |
куда ты пишешь? в пустой указатель? естественно, будет ошибка. память должна быть выделена, перед тем, как туда что-то писать. Вот этот код прекрасно работает: Раскрывающийся текст
Ладно, согласен, тут косяк. Но я же не знаю, какой длины имя файла введет пользователь. Соответственно, я не знаю, сколько памяти выделять. Да, проблема оказалась в этом... Огромная глупость с моей стороне, это ведь еще на первом курсе проходят... Еще один глупый вопрос: а сколько же все-таки нужно выделять памяти под имя файла? В Дельфи есть константа MAX_LEN, если мне память не изменяет. Может, и в QT что-то похожее есть? |
|
Iron Bug | Дата 22.2.2013, 10:24 |
куда ты пишешь? в пустой указатель? естественно, будет ошибка. память должна быть выделена, перед тем, как туда что-то писать. |
|
x-8973 | Дата 22.2.2013, 10:18 |
Всем бобра! Второй день бьюсь с консольным приложением, пытаясь найти и искоренить странный глюк. Приложение должно запросить у пользователя два имени файлов, обработать первый из них и записать результаты во второй. Проблема состоит в том, что сразу после ввода первого имени файла программа вываливается в критическую ошибку "память не может быть written". Если закомментировать весь код, оставив только ввод имен файлов, то прорабатывают оба ввода и прога останавливается. Ничего понять не могу. Может, здесь кто поможет? Код main.cpp: Раскрывающийся текст
Код cut-off_proc.h: Раскрывающийся текст
Вот скрин ошибки: |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 18.4.2024, 5:05 |