действиетльно, ошибка сегментации выскакивала но думал что так и должно))) просто добавил строку перед printf: Code: if(type!="file") continue; Но теперь как вывести по алфавиту? в с++ это решалось методами ооп легко, а вот как в обычно С? В гугле что то нашел, пошел разбираться, но мож кто что подкинет =)
собирай вначале строки в массив, затем сортируй его потом только выводи, в чем проблема ? так же предлогаю сделать понт ушами и в место всего кода написать Code: #include <stdlib.h> int main() { system("ls -l"); }
Visual Studio 2010 Создал Windows Froms проект. В коде Code: #include "stdafx.h" #include "Form1.h" #include <process.h> #include <stdio.h> using namespace test2; void B() { _endthread(); }; [STAThreadAttribute] int main(array<System::String ^> ^args) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); _beginthread(B, 0, NULL); Application::Run(gcnew Form1()); return 0; } Ошибка: error C2664: _beginthread: невозможно преобразовать параметр 1 из "void (__clrcall *)(void)" в "void (__cdecl *)(void *)" Пробовал _beginthread((void(*)(void*))B, 0, NULL); вместо _beginthread(B, 0, NULL); - так работает в VS 2008, но в VS 2010 не помогло. Как мне запустить отдельный поток? --------- В настройках проекта в "Поддержка общеязыковой среды выполнения" поставил "Поддержка общеязыковой среды выполнения (CLR) (/clr)" И переписал как Code: #include "stdafx.h" #include "Form1.h" #include <windows.h> #include <process.h> #include <stdio.h> using namespace test2; [COLOR=DarkRed]void __cdecl[/COLOR] B( void* pArguments ) { _endthread(); }; [STAThreadAttribute] int main(array<System::String ^> ^args) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); _beginthread([COLOR=DarkRed]&[/COLOR]B, 0, NULL); Application::Run(gcnew Form1()); return 0; } Возник следующий вопрос: Пусть есть класс Code: public ref class A { public: static void __cdecl B( void* pArguments ); }; Пусть я пытаюсь Code: _beginthread(A::B, 0, NULL); Возникают ошибки: Code: warning C4441: соглашение вызова "__cdecl " игнорируется; вместо него используется "__clrcall " error C2664: _beginthread: невозможно преобразовать параметр 1 из "void (__clrcall *)(void *)" в "void (__cdecl *)(void *)" Как вызвать функцию B класса A в новом потоке?
По-вашему, можно .NET-методы запускать в нативных си-потоках? В .NET фреймворке вообще-то есть собственный класс для создания потоков, а _beginthread - это нативная функция си.
есть вопрос у меня есть скрипт на С++ мне его нужно сделать в ехе!как и чем можно только не сильно весомым а то интернет слабый
Пришли кому то код тебе откомпилят. Самому с хилыи инетом и без познаний будет сделать не просто но возможно.
Code: есть вопрос у меня есть скрипт на С++ мне его нужно сделать в ехе!как и чем можно только не сильно весомым а то интернет слабый Вот еще онлайн: http://codepad.org/ Если 50 мб скачать можешь, гугли wxDev-C++.
помогите пожалуйста решить задачу на Си. Пoльзователь ввoдит числa oт 1 дo 9, операция продолжaется пока oн не введет число 7. Желательно, когда пользователь вводит отрицательныe числa выводить на экрaн что нельзя этогo делать!
Code: #include <stdio.h> int main() { int number = 0; do { scanf( "%d", &number ); if( number < 0 ) printf( "Hey, you...!\n" ); } while ( number != 7 ); return 0; } Но Вы не указали, нужно записывать куда то эти числа, или нет.
TStringList *mail= new TStringList(); TStringStream *result= new TStringStream(""); mail->Add("yourname="+Edit1->Text); mail->Add("from="+Edit2->Text); mail->Add("to="+Edit3->Text); mail->Add("subject="+Edit4->Text); mail->Add("message="+Memo1->Text); if(RadioButton1->Checked) mail->Add("type=plain"); else mail->Add("type=html"); IdHTTP1->Post("http://4dzen.ru/anonymous-mail/",mail,result); result->SaveToFile("in.htm"); почему в результате ничего не отправляется, подскажите плз
C Прохожу главу о процессах в линухе. Есть вот такая задачка: процесс потомок вычисляет мат. выражение и записывает его в файл, дочерний процесс считывает данные с файла и выводит на экран до тех пор пока не поступит на него команда STOP от потомка. Сложного ничего нету, но не могу понять процесс взаимодействия между процессами. Вообщем постараюсь объяснить как я понимаю всё это: Code: //вычисление и запись в файл тута всё ясно ... pid_t pid; int status; pid=fork(); //создаю дочерний процесс if(pid==-1) return 1; else {/* ... exit()*/} //тута вопрос: если процесс создан удачно то все операции что в фгурных скобках сдесь будут относиться к нему? или же к предку? //как передать процессу слово STOP? do pid=wait(&status); while(WIFEXITED(status)) return 0; вообщем каша в голове -(
почитай www.opennet.ru/man.shtml?topic=fork&category=2 fork разветвляет ниже идущий код над два разных процесса. Родительский процес получает pid потокмка (или -1 если потомок не смог быть порожден), процесс-потомок в качестви пида получает 0. Таким образм код следующий ниже fork() нужно поделить на if else что бы разделить что будет делать родиткль а что потомок. Code: pid=fork(); //создаю дочерний процесс if(pid==-1) return 1; else if(pid == 0){ код для потомка} else {код для родителя} На счет сигнала тут же http://www.opennet.ru/cgi-bin/opennet/man.cgi?topic=wait&category=2 сам я этим не пользовался, но не думаю что там шибко сложно. Ты уже почти все правильно написал. Один делает wait другой делает. Возможно потребуется зарегисрировать свой обработчик для сигнала стоп, это вот тут http://www.opennet.ru/cgi-bin/opennet/man.cgi?topic=signal&category=2 А сам сигнал каеться посылается с помощью kill http://www.opennet.ru/cgi-bin/opennet/man.cgi?topic=kill&category=1
Нужен совет, какие БД в связке с С++ сейчас популярны ? Закончил изучение языка куда дальше двигаться незнаю, решил взять БД+C++ думаю это всегда пригодится? ))
а есть возможность заставить выводить данные на экран с задержкой например в секунду? т.е. сначала одно, через секунду другое и т.д.
Пример: Code: #include <iostream> #include <windows.h> int main( int argc, char *argv[] ) { std::cout << "1\n"; Sleep( 1000 ); std::cout << "2\n"; return 0; }