Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: akaGM
Дата сообщения: 28.12.2008 13:57
TeXpert

Цитата:
править rtl...
Ну зачем так грустно?

а может это самый простой способ?
не знаю как на самом деле (под рукой только дельфийская rtl'ка и есть где-то *.asm'ы от BC 3.1, да и не хочу вообще что-либо смотреть), но предположим что, например, в io.asm есть такая строка:

__iobuffer db 1024 dup (0) ; internal buffer for all i/o console operations

делаем его где-нибудь экстерном и перекомпилируем один асм, пересобираем библиотеку,
всё...

хм... а ведь действительно грустно...
не буду так делать! гы

а вообще, имхо, проблема довольно надуманная и если только в обучательных целях...
Автор: Infinite Retrieval
Дата сообщения: 28.12.2008 14:45
Чтобы не было пустой болтовни, позвольте задать конкретный вопрос (точнее повторить): Можно ли не выделяя памяти под ввод, просто ввести что-либо в консоли (ввод как бы впустоту, т.е. ввод содержиться лишь в stdin) и прочитать этот ввод?
Автор: KChernov
Дата сообщения: 28.12.2008 15:08
Infinite Retrieval

Цитата:
Можно ли не выделяя памяти под ввод, просто ввести что-либо в консоли (ввод как бы впустоту, т.е. ввод содержиться лишь в stdin) и прочитать этот ввод?

Что значит "не выделяя памяти"? Совсем не выделяя?
В принципе можно прочитать его и сразу вывести.
Ну или считать посимвольно.

п.с.: Если это действительно учебная задача - проще поискать ответ в лекциях/семинарах/рекомендуемой литературе.
Автор: Infinite Retrieval
Дата сообщения: 28.12.2008 15:33

Цитата:

п.с.: Если это действительно учебная задача - проще поискать ответ в лекциях/семинарах/рекомендуемой литературе.

Увы, это моя собственная задача, зараза в голову вбилась...


Ещё раз поясню. Можно ли организовать ввод в консоли не вводя переменных вообще и не выделяя память????? Т.е. тупо ввод в консоли вникуда. По идее это "вникуда" и есть stdin. Можно ли получить доступ в stdin из кода?
Автор: KChernov
Дата сообщения: 28.12.2008 16:16
Infinite Retrieval

Цитата:
Можно ли организовать ввод в консоли не вводя переменных вообще и не выделяя память????? Т.е. тупо ввод в консоли вникуда.

А зачем?
Ответ на такой вопрос часто помогает делу.
Автор: akaGM
Дата сообщения: 28.12.2008 16:41
Infinite Retrieval

Цитата:
Можно ли организовать ввод в консоли не вводя переменных вообще и не выделяя память????? Т.е. тупо ввод в консоли вникуда.

Код: #include <stdio.h>
void main() {
puts("тупо введите что-нить вникуда...");
scanf("\n");
}
Автор: tch2000
Дата сообщения: 10.01.2009 13:21
Нужна компонента выбора директории с возможностью создания новой директории под шестой билдер. Уверен, что такая задача возникала ни у меня одного...
Юзать SaveDialog не хочется... Больно коряво получается
Автор: EZH
Дата сообщения: 10.01.2009 14:46
tch2000
http://www.cyberguru.ru/cpp-sources/files-folders/kak-pokazat-dialog-vybora-papki.html
Автор: tch2000
Дата сообщения: 10.01.2009 16:15
EZH
Там для [C++, Visual C++] а мне для борланда...
Автор: rot
Дата сообщения: 10.01.2009 16:21
Работа с ЛПТ портом. Состояние ввода вывода. Помогите.
Автор: Stitchi16
Дата сообщения: 10.01.2009 17:12
Не в ту ветку написал.
Автор: EZH
Дата сообщения: 10.01.2009 18:07
tch2000
Это же на WinAPI написано, а WinAPI работает везде. Это они просто в заголовке указали Visual C++. Вот тебе ссылки, где рассказывается про тоже самое, но в заголовке написано [C++ Builder], если тебе так будет легче
http://www.cyberguru.ru/cbuilder-sources/system/shell-extensions.html
http://rxlib.ru/faqs/bcbfaq/Allow%20the%20user%20to%20browse%20for%20a%20folder.html
Автор: tch2000
Дата сообщения: 10.01.2009 20:14
EZH
Хорошо. Но мне необходимо иметь возможность создавать директории.
Проще всего - установить в билдер компоненту. Наверняка есть такие... А так, я делаю через SaveDialog, но это некрасиво... Надписи на кнопках не те, и абстрактное имя файла надо задавать. Работать можно, но неэстетично это
Автор: EZH
Дата сообщения: 11.01.2009 14:26
tch2000
Честно говоря я не встречал бесплатных толковых компонентов с диалогом выбора директории, те что попадались - shareware, но они все реально реализуют то, что я тебе дал по ссылке, т.е. просто обертки в компонент. По первой моей ссылке на форму выбора каталога добавляется кнопка создания каталога, там же есть обработчик, который и создает каталог.
Автор: TargeTSan
Дата сообщения: 11.01.2009 15:58
Infinite Retrieval
Касательно твоей задачи по буферизации.
Stdin, stdout, stderr и так являются буферизованными потоками, т.е. сначала забиваем буфер, потом передаём дальше по назначению. Что, впрочем, и так всем понятно.
Прежде всего определись, что тебя не устраивает в стандартном подходе.
а) возможность "пролететь" с размером буфера и получить переполнение; тут или используй функции, отрезающие всё лишнее, или пиши свою, с посимвольным чтением, которая будет работать с пачкой блоков переменной длины, т.е. возвращает упорядоченный массив указателей на блоки текста
б) само по себе двойное выделение памяти - не парься; внутренний iobuffer либо статический, либо выделен один раз. А то что приходится выделять каждый раз память - не смертельно аж ни разу, ты ж не заставишь бедного пользователя вводить по 100кб текста, обычно нужно что-то коротенькое. Выделить в стеке сотню байт при вызове какой-то функции ввода-вывода не есть плохо. Потому как в случае ввода с клавиатуры самое медленное звено в цепочке - юзер, который за клавой сидит.
Если ну очень хочется, можешь делать небуферизованный ввод и ручками подменять буфер. Не могу, правда, придумать, когда это может понадобиться.
Автор: virpool
Дата сообщения: 19.01.2009 23:23
извиняюсь может немного не туда пишу, но может кто-нибудь посоветовать хорошую литературу насчет MS Access + C++
Автор: Stitchi16
Дата сообщения: 20.01.2009 13:58
Подскажите пожалуйста, в VC++ 2008 собрал маленькую программу и при запуске на компьютере, где нет компилятора выдаёт ошибку "Приложение не запущенно, поскольку оно некорректно настроено. Повторная установка приложения, поможет решить эту проблему".
Автор: akaGM
Дата сообщения: 20.01.2009 14:34
Stitchi16
в опциях проекта в разделе С/С++ / Сode generation / runtime library
поменяй
Multi-threaded DLL (/MD)
на
Multi-threaded (/MT)

или устанавливай на другой комп пакет ms visual C++ redistributeble
Автор: virpool
Дата сообщения: 20.01.2009 15:09
а не проще ли .NET Framework установить?
Автор: BlackBerry
Дата сообщения: 22.01.2009 16:53
Mожно ли на С/С++ писать такую конструкцию ?
typedef struct {LIST *a;LIST *b;} LIST;
Автор: akaGM
Дата сообщения: 22.01.2009 17:10
BlackBerry
на С лучше так:

Код: typedef struct list {
struct list * a;
struct list * b;
} LIST, *PLIST;
Автор: shadow_user777
Дата сообщения: 23.01.2009 08:37
Господа, требуется помощь.
Нужны исходники программы для составления подобия Электронного журнала учета заявок.
С возможностью поиска по таблице, вывода на печать, выгрузки таблицы в тхт или xls.
Т.е. небольшая база данных по учету заявок и контролю за их исполнением.
Если у кого-либо есть что-то подобное, поделитесь плиз.
Заранее спасибо за помощь.
Автор: mdid
Дата сообщения: 07.02.2009 12:03
10 лет писал на паскале и с делфи тут решил все таки на С перейти...есесно туча траблей...вопрос...я подключаю DirectX SDK...через LoadLibrary и GetProcAddress..но блин вообще не могу понять как объявлять функции по типу

Код:
typedef IDirect3D9 * (__stdcall *FMYD3DCREATE)(unsigned int);
Автор: ChiPnGo
Дата сообщения: 07.02.2009 13:20
D3DXMATRIX* (*)(D3DXMATRIX*, FLOAT) - это тип указателя на функцию D3DXMatrixRotationY, если ничего не напутал.
Автор: mdid
Дата сообщения: 07.02.2009 14:42
ругается на (*) - [BCC32 Error] DirectX_L.h(23): E2040 Declaration terminated incorrectly
Автор: ChiPnGo
Дата сообщения: 07.02.2009 16:30
А, ну да. Переменная такого типа объявляется и инициализируется нужным значением так:

Код:
typedef D3DXMATRIX* (*FD3DXMatrixRotationY)(D3DXMATRIX*, FLOAT);
FD3DXMatrixRotationY D3DXMatrixRotationY = (FD3DXMatrixRotationY)GetProcAddress(hLib, "D3DXMatrixRotationY");
Автор: karakurt2
Дата сообщения: 09.02.2009 10:49
Подскажите, пожалуйста, как получить указатель на интерфейс CorelDRAW::IDrawAutomate для автоматиции CorelDraw... У меня никак не получается, а документации или примеров для контроллера автоматизации на C++ нет.
Автор: vipettut
Дата сообщения: 09.02.2009 13:42
karakurt2

Да ну, по COM Automaiton полно примеров
Автор: karakurt2
Дата сообщения: 09.02.2009 16:52
vipettut, ссылки, как говорится, в студию. Вопрос не такой размазанный, как COM Automation, а совершенно конкретный. Контроллер автоматизации CorelDRAW на C++. Хотя для меня этот вопрос уже неактуален, остался только академический интерес, как это делают другие.
Автор: Meek
Дата сообщения: 12.02.2009 18:04
Не так давно начал программить на Си++. Пробовал MS VC++ 6.0 и BloodShed Dev-C++. В обоих редакторах очень сильно нервирует остутствие удобной навигации по коду: например, если при просмотре кода вызывается какая-функция, то меня интуитивно тянет щелкнуть по ней два раза, чтобы провалиться в неё. Есть ли какой-то редактор, которая поддерживает данную фишку?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.