Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;输入和输出流_C++_Iostream - Fatal编程技术网

C++ C++;输入和输出流

C++ C++;输入和输出流,c++,iostream,C++,Iostream,C++的输入流是否可以从msn、yahoo之类的聊天室读取并返回某种消息? 我只是想知道,当我在网上搜索时,大部分都需要客户端和服务器 我是新来的不;这两个概念只有短暂的相似之处 C++iostreams是一种非常低级的构造,用于从操作系统设备(如文件系统、fifos、套接字等)读取字节 聊天服务是通过诸如XMPP之类的高级协议实现的,XMPP通过操作系统提供的套接字API在TCP上运行 简言之,它们是粉笔和奶酪 通过iostream设施提供对插座的访问已经有了名义上的努力,iostream设施

C++的输入流是否可以从msn、yahoo之类的聊天室读取并返回某种消息? 我只是想知道,当我在网上搜索时,大部分都需要客户端和服务器


我是新来的

不;这两个概念只有短暂的相似之处

  • C++iostreams是一种非常低级的构造,用于从操作系统设备(如文件系统、fifos、套接字等)读取字节
  • 聊天服务是通过诸如XMPP之类的高级协议实现的,XMPP通过操作系统提供的套接字API在TCP上运行
  • 简言之,它们是粉笔和奶酪


    通过iostream设施提供对插座的访问已经有了名义上的努力,iostream设施的设计就是以这种方式扩展的。然而,这些库从未在主流C++编程中获得显著的牵引力。即使他们做到了,他们离实现像XMPP这样复杂的协议还有很长的路要走;这两个概念只有短暂的相似之处

  • C++iostreams是一种非常低级的构造,用于从操作系统设备(如文件系统、fifos、套接字等)读取字节
  • 聊天服务是通过诸如XMPP之类的高级协议实现的,XMPP通过操作系统提供的套接字API在TCP上运行
  • 简言之,它们是粉笔和奶酪

    通过iostream设施提供对插座的访问已经有了名义上的努力,iostream设施的设计就是以这种方式扩展的。然而,这些库从未在主流C++编程中获得显著的牵引力。即使他们有,实现像XMPP这样复杂的协议还有很长的路要走。

    是的,如果你能找到(或编写)一个库来实现这个抽象的话

    正如马塞洛所说,聊天服务等使用复杂的协议进行操作。但是关于stdio和文件流也可以说类似的事情——写入文件或文本模式显示有相当多的复杂性(这甚至没有提到GUI中的控制台窗口)。大部分复杂性已经被操作系统和标准库抽象掉了

    编写一个库仍然可以抽象掉大部分复杂性。然后,该库可以提供作为输入和/或输出流的对象,遵循与标准流相同的约定,并从相同的基础继承

    这可能是一个很好的方法,但很少见。也许我错了——我从来没有真正为这类事情编写过程序。但如果我是对的,很有可能的原因是库经常被编写成与C和C++兼容。

    也可以看出,即使在C++程序员中,流抽象也不总是被认为是一个好的特性。很多人希望看到它们仅限于stdio和文件I/O,而实际上并不认为流是一种更一般的抽象

    顺便说一句,这与马塞洛的回答并不矛盾。“如果你能找到(或写)一个库”是一个很大的如果。

    是的,如果你能找到(或写)一个库来实现这个抽象

    正如马塞洛所说,聊天服务等使用复杂的协议进行操作。但是关于stdio和文件流也可以说类似的事情——写入文件或文本模式显示有相当多的复杂性(这甚至没有提到GUI中的控制台窗口)。大部分复杂性已经被操作系统和标准库抽象掉了

    编写一个库仍然可以抽象掉大部分复杂性。然后,该库可以提供作为输入和/或输出流的对象,遵循与标准流相同的约定,并从相同的基础继承

    这可能是一个很好的方法,但很少见。也许我错了——我从来没有真正为这类事情编写过程序。但如果我是对的,很有可能的原因是库经常被编写成与C和C++兼容。

    也可以看出,即使在C++程序员中,流抽象也不总是被认为是一个好的特性。很多人希望看到它们仅限于stdio和文件I/O,而实际上并不认为流是一种更一般的抽象


    顺便说一句,这与马塞洛的回答并不矛盾。“如果你能找到(或写)一个库”是一个很大的如果。

    你可以创建一些类,例如MY_CLIENT。 在这个类中,您需要实现函数

    std::streamsize write( const char *s, std::streamsize n );
    std::streamsize read( char* s, std::streamsize n );
    
    在这些函数中,您需要实现聊天室逻辑的协议,以及如何将数据发送到和读取

    在此之后,请查看
    boost::iostreams
    库。使用它,您可以编写smth,如:

    boost::iostreams::stream< MY_CLIEN> my_chat_stream;
    
    boost::iostreams::streamMY\u chat\u stream;
    

    和MyAsChina流,可以使用Acth.Std::istRAMAM,STD::OFSUCT程序,用所有C++流机会符

    < P>可以创建一些类,例如MyAuthCube。 在这个类中,您需要实现函数

    std::streamsize write( const char *s, std::streamsize n );
    std::streamsize read( char* s, std::streamsize n );
    
    在这些函数中,您需要实现聊天室逻辑的协议,以及如何将数据发送到和读取

    在此之后,请查看
    boost::iostreams
    库。使用它,您可以编写smth,如:

    boost::iostreams::stream< MY_CLIEN> my_chat_stream;
    
    boost::iostreams::streamMY\u chat\u stream;
    
    和MyAsChigaStand,可以使用Asdie:Case> STD::istRAM:STD::Orths程序,所有C++流机会符