小编nic*_*ckb的帖子

如何在Windows中使用boost asio从命令行异步读取输入?

我发现这个问题询问如何异步读取输入,但只适用于POSIX流描述符,这在Windows上不起作用.所以,我发现这个教程显示我可以使用a而不是使用POSIX流描述符boost::asio::windows::stream_handle.

按照这两个例子,我想出了下面的代码.当我运行它时,我无法在命令提示符中输入任何内容,因为程序会立即终止.我希望它能捕获用户的任何输入,可能是一个std::string,同时允许我的程序中的其他逻辑执行(即从Windows控制台执行异步I/O).

基本上,我试图避免在尝试读取时阻止我的程序stdin.我不知道这是否可以在Windows中使用,因为我还发现这篇文章详述了另一个用户在尝试做同样事情时遇到的问题.

#define _WIN32_WINNT 0x0501
#define INPUT_BUFFER_LENGTH 512

#include <cstdio>
#include <iostream>

#define BOOST_THREAD_USE_LIB // For MinGW 4.5 - (https://svn.boost.org/trac/boost/ticket/4878)
#include <boost/bind.hpp>
#include <boost/asio.hpp>

class Example {
    public:
        Example( boost::asio::io_service& io_service)
            : input_buffer( INPUT_BUFFER_LENGTH), input_handle( io_service)
        {
            // Read a line of input.
            boost::asio::async_read_until( input_handle, input_buffer, "\r\n",
                boost::bind( &Example::handle_read, this,
                    boost::asio::placeholders::error,
                    boost::asio::placeholders::bytes_transferred));
        }
        void handle_read( const boost::system::error_code& error, std::size_t length);
        void handle_write( const boost::system::error_code& error);
    private:
        boost::asio::streambuf …
Run Code Online (Sandbox Code Playgroud)

c++ windows boost boost-asio

8
推荐指数
2
解决办法
7956
查看次数

如何按字符串长度排序数组,然后按PHP中的值排序?

目前,我按字符串长度排序数组.但是,当字符串长度相等时,我如何按值排序?

例如,我目前的代码:

$array = array("A","BC","AA","C","BB", "B");

function lensort($a,$b){
    return strlen($a)-strlen($b);
}

usort($array,'lensort');

print_r($array);
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [0] => C
    [1] => A
    [2] => B
    [3] => BB
    [4] => AA
    [5] => BC
)
Run Code Online (Sandbox Code Playgroud)

但是,我希望它按以下方式排序:

Array
(
    [0] => A
    [1] => B
    [2] => C
    [3] => AA
    [4] => BB
    [5] => BC
)
Run Code Online (Sandbox Code Playgroud)

php arrays sorting

8
推荐指数
1
解决办法
3192
查看次数

NIVO SLIDER - 制作幻灯片链接?

是否可以在NIVO SLIDER中制作幻灯片链接?

slider

7
推荐指数
2
解决办法
2万
查看次数

如何编写jquery if else语句?

此代码显示frm01:

$(document).ready(function() {
$("#reg").click(function () {
$("#frm01").show("slide", { direction: "down" }, 1000);
});
});
Run Code Online (Sandbox Code Playgroud)

但我想隐藏frm01,如果它已经可见,反之亦然.我怎么能这样做呢?

jquery

7
推荐指数
1
解决办法
5万
查看次数

为什么从右到左"打印"打印?

任何人都可以向我解释这是如何工作的:

<?php
    print 5 . print 6 . print 7;
?>
Run Code Online (Sandbox Code Playgroud)

它打印: 76151

我知道函数1的返回值是什么print,但为什么函数以相反的顺序调用?

php

7
推荐指数
1
解决办法
130
查看次数

使用 Boost 状态图,如何无条件转换到状态?

我有一个状态,一旦 的构造函数完成A,我想B无条件地转换到它的下一个状态A。这可能吗?

我尝试从构造函数发布一个事件,即使它编译,它也不起作用。谢谢。

编辑:这是我迄今为止尝试过的:

struct A : sc::simple_state< A, Active >
{
    public:
        typedef sc::custom_reaction< EventDoneA > reactions;
        A()
        {
            std::cout << "Inside of A()" << std::endl;
            post_event( EventDoneA() );
        }

        sc::result react( const EventDoneA & )
        {
            return transit< B >();
        }
};
Run Code Online (Sandbox Code Playgroud)

这会产生以下运行时断言失败:

Assertion failed: get_pointer( pContext_ ) != 0, file /includ
e/boost/statechart/simple_state.hpp, line 459
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-statechart

6
推荐指数
1
解决办法
2024
查看次数

将InnoDB表转换为MyISAM最安全的方法是什么?

我的数据库目前正在使用InnoDB引擎.现在我想添加全文搜索功能,这就是我想将表格转换为MyISAM的原因.但这样做会破坏所有外键.如何安全地将我的表引擎更改为MyISAM?

将表格更改为MyISAM引擎后,如何使用SELECT ... JOIN?

ALTER TABLE jobs ENGINE = MyISAM;
Cannot delete or update a parent row: a foreign key constraint fails
Run Code Online (Sandbox Code Playgroud)

mysql myisam innodb

6
推荐指数
1
解决办法
1万
查看次数

在phpMyAdmin中登录时是否可以指定主机?

我想知道是否可以在phpMyAdmin的登录屏幕上指定主机.

每当我需要连接到不同的服务器时,我必须编辑主机字段config.inc.php.

php mysql phpmyadmin

6
推荐指数
1
解决办法
1万
查看次数

PHP获取浏览器:输出混乱

我有一个包含用户Web浏览器信息的列表.该列表由PHP通过用户需求调查生成.输出如下所示:(示例):

  • Mozilla/4.0(兼容; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
  • Mozilla/5.0(Windows NT 6.0; WOW64)AppleWebKit/535.19(KHTML,像Gecko)Chrome/18.0.1025.152 Safari/535.19
  • Mozilla/5.0(兼容; MSIE 9.0; Windows NT 6.1; Trident/5.0)
  • Mozilla/4.0(兼容; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727)
  • Mozilla/5.0(Windows NT 5.1; rv:11.0)Gecko/20100101 Firefox/11.0
  • Mozilla/5.0(Macintosh; Intel Mac OS X 10_7_3)AppleWebKit/535.19(KHTML,如Gecko)Chrome/18.0.1025.151 Safari/535.19
  • Opera/9.80(Windows NT 6.0; U; da)Presto/2.10.229版本/ 11.62
  • Mozilla/5.0(iPad; CPU OS 5_0_1,如Mac OS X)AppleWebKit/534.46(KHTML,类似Gecko)版本/ 5.1 Mobile/9A405 Safari/7534.48.3
  • Mozilla/5.0(iPhone; CPU iPhone …

php browser

5
推荐指数
1
解决办法
536
查看次数

警告:preg_replace()[function.preg-replace]:编译失败:在偏移量1处不重复

有人可以帮助调试此错误吗?

警告:preg_replace()[function.preg-replace]:编译失败:在偏移量1处不重复

//Generate uid
    function gen_uid($len=40) {
        $hex = md5("what" . uniqid("", true));
        $pack = pack('H*', $hex);
        $tmp =  base64_encode($pack);
        $uid = preg_replace("#(*UTF8)[^A-Za-z0-9]#", "", $tmp);
        $len = max(4, min(128, $len));
        while (strlen($uid) < $len)
            $uid .= gen_uid(22);
        return substr($uid, 0, $len);
    }
Run Code Online (Sandbox Code Playgroud)

是什么导致这个?它是PHP问题还是其他什么?应用程序在我的本地计算机上运行正常但在服务器上运行不正常

php regex preg-replace

5
推荐指数
1
解决办法
9657
查看次数