Крайне медленная функция. я бы брал ссылку на вектор, все равно его объявит вышестоящая функция. А так еще и конструктор копирования вызывается.
Как по мне - то разница в пару процентов несущественна, ведь все равно нагрузка на ФС будет основная.
Возникла проблема. Пишу на С++ Builder'e. Хотел сделать свою прогу более удобной, добавил объект MainMenu и перенес функции нажатия соотв. клавишь туда. Однако после переноса (если просто через Button'ы меню программы делать, все работает на Ура) одна кнопка после нажатия стала перекрашивать окно, т.е. оно становится каким-то нетаким, заголовок программы пропадает, кнопки (свернуть,развернуть и закрыть в заголовке) тоже, поле ввода текста на половину окрашивается черным(до того места до которого есть текст). Если нажать на заголовок программы то она закрывается. Ошибок не выдает. Повторюсь что если через Button обычый без MainMenu то все нормально (даже через маинменю код выполняет, но окно программы портит и нечего не видно толком)
было бы замечательно если бы ты код выложил, а лучше весь проект через файло обменник. з.ы. да и бросай ты это гнилое дело писать в билдере на с++
А ты подскажешь, как в Vc юзать Vcl? )))) Но все равно по указателю получше будет, тут ты прав, но причина твоя явно надумана)
Ты сам себе ответил? Ладно, ближе к делу. Просто возвращение целого вектора из функции довольно редкий стиль. Реально юзер не заметит этого, так как даже при худшем случае в 10к файлов мы лишний раз скопируем килобайт 100(10 символов на все про все). Для сегодняшнего дня это пустяки. Хотя эту функцию можно еще ускорить, если использовать уникод-вариант. Оптимизация - корень всех зол, но не стоит о ней забывать.
Я ее просто с AnsiString перевел, в билдере вообще с уникодом жопа ) Почитай, тебе полезно будет: http://rsdn.ru/article/philosophy/Optimization.xml Краткий смысл: оптимизировать нужно только критические места.
Ок. Надеюсь на народе пойдет (http://narod.ru/disk/2665777000/prog_src.rar.html)? Ну если надо еще залью, только скажи сам куда. В архиве Исходники и готовый билд. Сам посмотришь, на кнопке и на др. кнопке в Меню одно и тоже действие на OnClick. Не суди строго за код, учился билдеру сам, писал сам не чего не принемая за базу. В уневерситете, вот в этом году поступил, будем изучать Delphi уже профессионально, но хотелось бы конечно MVS освоить, ну да ладно...не судьба. Так же в архиве тестовый файл примерMTADMвSAMP.map . Загружешь его через программу (Файл->Открыть...) далее Конвертировать в...->MTA DM в SAMP или просто окне программы кнопка "Через простую кнопку все ОК".
Постараюсь объяснить суть. Нужно написать функцию, которая принимала бы в качестве аргумента массив из нескольких слов (через пробел) которые бы находились в argv[0], argv[1] и тд. Что-то типа как в функции main(int argc, char *argv[]). Здесь запуская программу мы можем указать параметры, например: Code: ./a.out hello world Тогда argv[1]=hello argv[2]=world. Нужна примерно аналогичная функция, только чтобы принимала массив. Например: Code: ... int XFunction(char *x[]) { printf("%s", x[1]); printf("%s", x[2]); return 0; } int main() { char buff[512]; gets(buff); XFunction(buff); return 0; } Здесь запускаем программу, вводим, к примеру hello world, и XFunction нам выводит в качестве x[1] - hello, в качестве x[2] - world. Это как нибудь реально осуществить? Сколько не пытался, все время Segmentation Fault Заранее спасибо!
Дорогой ++Norton++, очень хочу узнать твое мнение. Каким макаром компилятор так ловко преобразовал из char* в char**. Вот просто интересно... Добавлено позже... А вот еще очень интересный момент. x[2] бескомпромисно вылезло за размеры массива и так упорно пытается что-то вырвать с памяти. PS: просто хорошее настроение.
идёшь циклом по содержанию файла,если пробел к примеру ставишь флаг и считаешь количество букв в слове(до след. пробела).Ну и если оно равно тому которое тебе нужно - сохраняешь.
UnPazz, берем fstream. Определяем разделитель текстового файла. Объявляем один объект типа string и используем getline. Первый аргумент - объект fstream, второй объект string, третий - char разделитель. Организуем цикл. Проверочным условием будет метод eof() , угадайте какого объекта. Для определения длины используется функция-член класса string size(). Успехов.
4p3 Да нет, компилятор ничего не преобразовывал . То что я привел, я согласен бред полнейший. Это я привел просто для примера, т.к. правильно сделать не знаю пока как. Вот и обращаюсь за помощью
вот выдалось время свободное Code: //--------------------------------------------------------------------------- #include <iostream> #include <cstdlib> #pragma hdrstop using namespace std; //--------------------------------------------------------------------------- void PrintVarArg(char** args, int nArgsCount) { for (int i = 0;i < nArgsCount;++i) cout << args[i]; } #pragma argsused int main(int argc, char* argv[]) { char *szArgs[] = {"dalek", "kaled"}; PrintVarArg(szArgs, 2); system("pause"); return 0; } //---------------------------------------------------------------------------
Есть такой вопросик: почему не работает ф-я CharToOem() в Visual Studio2008(C++9), тоесть ругается с ошибкой error C2664: 'CharToOemW' : cannot convert parameter 1 from 'char [7]' to 'LPCWSTR' В С++ 6 все отлично работало, а тут не хочет, может кто знает в чем тут проблема? char z[] = "ПревеД"; CharToOem(z,z);