[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. R0nin

    R0nin Member

    Joined:
    11 Jul 2010
    Messages:
    261
    Likes Received:
    24
    Reputations:
    8
    да, говорю что удобно.
    удобность вещь относительная, на C программировал лет 4-5, тоже казалось что замены для printf не найти, но как только перешел на C++ понял, что замена на самом деле есть, и что работать с ней намного удобнее ;).
    Или ты спорить собирался ? Довольно, глупо спорить насчет таких вещей.

    И вообще, ты на вопрос парня не ответил, он спрашивал какая разница между cout и printf, а не какая разница между результатами функций.
    Если судить по твоей логике можно было ему дать список прерываний и сказать, что никакой разницы между функциями разных языков нету, так как они в итоге вызывают инструкция процессора, это конечно так, но еще до вызова этих прерываний, и той же функции write() выполняются другие операция, и зависит это от определенной имплементации функций.
     
    #6141 R0nin, 22 Feb 2011
    Last edited: 22 Feb 2011
  2. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    удобность она либо есть либо ее нет. Но делать сложно структурированные выводы с использованием cout не вызывает удовольствия. Так и хочется printf заюзать (особенно когда дело касается вещественных чисел)

    По поводу системных вызовов, это я стебанулся. Ибо разница между cout и printf как между трансформером и набором бывалого механика. Это функции двух абсолютно разных языков. И как их сравнивать ? конечно по конечному результату :)
     
  3. R0nin

    R0nin Member

    Joined:
    11 Jul 2010
    Messages:
    261
    Likes Received:
    24
    Reputations:
    8
    для меня удобно пользоватся cout, для тебя printf, и мы друг друга не переубедим, так есть удобность или нет?
     
  4. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    Я что то немного ушел в сторону, но ты подметил прям в точку.

    Code:
    работать с ним намного легче чем с printf, во всех смыслах этого слова.
    дописать надо было - "имхо"
     
  5. R0nin

    R0nin Member

    Joined:
    11 Jul 2010
    Messages:
    261
    Likes Received:
    24
    Reputations:
    8
    Конечно, это только мое мнение, я же ведь не представляю целый форум или какое нибудь другое общество.
    Главное, что поняли друг-друга.
     
  6. probm

    probm New Member

    Joined:
    9 Jul 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    c++ builder IdHTTP дайте материалы по отправке данных на сайт посредством запросом
    прям с чего начинать и что писать...
    заранее спасибо
     
  7. Tor Bel

    Tor Bel New Member

    Joined:
    13 Dec 2008
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    На сайте индейцев есть примеры.
    Да и здесь на форуме темы есть.
     
  8. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    а что тут писать?
    отправка гет запроса:
    string res=IdHttp->Get("Http://Site.com/script.php?param1=value1&param2=value2");
    в res окажется результат выполнения запроса(html код страницы), либо если это нес страница, укажи принимающий поток:
    TStream stream=new TStream();
    string res=IdHttp->Get("Http://Site.com/script.php?param1=value1&param2=value2",stream);
    в потоке окажется результат выполнения запроса

    отправка пост запроса:
    TStringList s=new TStringList();
    s.Add("param1=value1");
    s.Add("param2=value2");
    IdHTTP1->Post("http://site.com.script.php",s);
    т.е. заполняеш стринглист значениями и вызываеш метод пост
     
  9. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    У меня имеет list<pait<int, FIXApp*>>
    мне нужно удалить из него все элементы с указателем на определенный FIXApp.
    Для этого зарядил вот такую конструкцию
    Code:
    this->sharedBuffer_.erase_if(boost::bind([this](FIXApp* app1, FIXApp* app2)->bool{return app1 == app2;},_1, this));
    
    sharedBuffer инкапсулирует list, erase_if инкапсулирует работу remov_if

    Code:
    template <typename T>
    template <typename F>
    void SharedBuffer<T>::erase_if(F f)
    {
    	boost::lock_guard<boost::mutex> lock(this->_mtx);
    	remove_if(this->_data.begin(), this->_data.end(), f);
    }
    меня собстно интересует правильноли я составил конструкцию функцтора.
    Он вызывается непосредственно из экземпляра FIXApp для которого нужно удалить элементы.

    Есть ли подводные камни в составленной конструкции ?
    Code:
    return app1 == app2
    я сравниваю именно указатель хранащийся в list с сказателем получпенным через this.
     
  10. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    не делайте вот так

    Code:
    map<string, boost::shared_ptr<Class> > m;
    Class* myClass = new Class();
    m.insert(map<string, boost::shared_ptr<Class> >::value_type("a", myClass));
    std::pair<map<string, boost::shared_ptr<Class> >::iterator, bool> it = m.insert(map<string, boost::shared_ptr<Class> >::value_type("a", myClass));
    if(!it.second)
    {
    ...
    
    особенно коварно когда boost::shared_ptr<Class> скрыты ха typedef'ами. Потом сидишь и думаешь, как это так при вызове insert у тебя взялся и удалился объект по указателю переденному через параметр...

    и есть несмотря на то что
    Code:
    template<class Y> explicit shared_ptr(Y * p);
    
    видать весь гвоздь в value_type :(
     
  11. zapadlo_zapa

    zapadlo_zapa Banned

    Joined:
    18 Nov 2010
    Messages:
    30
    Likes Received:
    0
    Reputations:
    0
    Как переделать вот эту строку ???
    lights.run "C:\WINDOWS\system32\ping.exe 127.0.0.1 /t /l 65500", 0
    На ping.exe 127.0.0.1(порт на удалённой машине) /t /l 65500", 0
     
  12. R0nin

    R0nin Member

    Joined:
    11 Jul 2010
    Messages:
    261
    Likes Received:
    24
    Reputations:
    8
    Какой еще порт?
    Ты типа, собираешся проверить доступен ли порт на удаленной машине, и все это с помощью ICMP протокола? Оригинально однако.

    [​IMG]

    Видишь на какой уровне находится ICMP? Так вот, что такое порт знают протоколы TCP/UDP ;)

    Название темы : С/С++, C#, Delphi, .NET, Asm > [c/c++] Новичкам: задаем вопросы.
    Какому из вышеперечисленных яызков программирования относится твой вопрос?
     
  13. phantom83

    phantom83 New Member

    Joined:
    26 Feb 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте
    Не поможет ли кто нибудь сделать программу для отсчета времени от какой то даты до сегодняшнего дня, такая программа тут уже делалась но ссылка на обменник уже мертвая, или хотя бы скомпилить то что в той теме

    http://forum.antichat.ru/threadnav174335-1-10.html
     
  14. DeepBlue7

    DeepBlue7 Elder - Старейшина

    Joined:
    2 Jan 2009
    Messages:
    359
    Likes Received:
    50
    Reputations:
    12
    Возможно, тупой вопрос, но всё же... Каким образом можно "показать" MessageBox из dll в c++ ? (дллка будет прохукена в exe).
    Заранее благодарен.
     
    #6154 DeepBlue7, 1 Mar 2011
    Last edited: 1 Mar 2011
  15. probm

    probm New Member

    Joined:
    9 Jul 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    сори, вопрос избитый но не могли ли вы дать ссылку на скачивание книги по визуальному программированию в borland c++ builder 2006. заранее благодарен
     
  16. E:D

    E:D New Member

    Joined:
    19 Feb 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток.
    Не так давно решил занятся языком программирования. Не столь взрослый, вот решил забить свою голову хоть чем то, кроме глупых стрелялок.
    С чего начать? С каких языков?, ибо в школе у нас это будет не скоро.
     
  17. X-rus

    X-rus Member

    Joined:
    22 Dec 2010
    Messages:
    88
    Likes Received:
    22
    Reputations:
    4
  18. R0nin

    R0nin Member

    Joined:
    11 Jul 2010
    Messages:
    261
    Likes Received:
    24
    Reputations:
    8
    что делает СообщениеКоробка в DLL? :D И почему именно в C++ ? )
    Если ты хотел спрасить - как можно вызвать функцию MessageBox из DLL, то ответ такой - загружай библиотеку ( LoadLibrary()), узнай адрес функции (GetProcAddress()) и вызывай как обычную функцию.
    Надеюсь не стоит говорить, про то что нужно создать указатель на функцию, чтобы было где "сохранить" адрес данной функции.
     
  19. return

    return New Member

    Joined:
    23 Oct 2010
    Messages:
    125
    Likes Received:
    3
    Reputations:
    1
    под линуху

    вот такое вот задание:
    Разработать программу, которая выводит на экран содержимое текущего каталога в алфавитном порядке. Каталоги не выводить.
    Написл, но выдаёт не все файлы. Почему?
    Code:
    #include  <assert.h>
    #include  <dirent.h>
    #include  <stdio.h>
    #include  <string.h>
    #include  <sys/stat.h> 
    #include <sys/types.h>
    #include  <unistd.h>
    const char* get_file_type(const char* path)
    {
    	struct stat st;
    	lstat(path, &st);
    	if(S_ISREG(st.st_mode))
    		return "file";
    	else if(S_ISCHR(st.st_mode))
    		return "file";
    	else if(S_ISBLK(st.st_mode))
    		return "file";
    	else "";
    }
    int main(int arge, char* argv[])
    {
    	char* dir_path;
    	DIR* dir;
    	struct dirent* entry;
    	char entry_path[PATH_MAX+1];
    	size_t path_len;
    	if(arge>=2)
    		dir_path=argv[1];
    	else dir_path=".";
    	strncpy(entry_path, dir_path, sizeof(entry_path));
    	path_len=strlen(dir_path);
    	if(entry_path[path_len-1]!='/')
    	{
    		entry_path[path_len]='/';
    		entry_path[path_len+1]='\0';
    		++path_len;
    	}
    	dir=opendir(dir_path);
    	while((entry=readdir(dir))!=NULL)
    	{
    		const char* type;
    		strncpy(entry_path+path_len, entry->d_name,           sizeof(entry_path)-path_len);
    		type=get_file_type(entry_path);
    		printf("%-15s: %s\n", type, entry_path);
    	}
    	return 0;
    }
    
    З.Ы. а в этой теме с/с++ под любую ось можно задавать вопросы? а то я хз мож есть спец тема :)
     
  20. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    у тебя вот здесь вылетает ошибка сегментации если текущая запись директория. Сам же написал в условие что без учета директорий, ну так и отсекай их
    Code:
    	struct stat buf;
    	while((entry=readdir(dir))!=NULL)
    	{
    		stat(entry->d_name, &buf);
    		if(!(buf.st_mode&S_IFDIR))
    		{
    			const char* type;
    			strncpy(entry_path+path_len, entry->d_name, sizeof(entry_path)-path_len);
    			type=get_file_type(entry_path);
    			printf("%-15s: %s\n", type, entry_path);
    		}
    	}
    
    проверил, работает.
     
Thread Status:
Not open for further replies.