小编eda*_*dam的帖子

在使用PHP的getopt()之后,我怎么知道哪些参数仍然存在?

好的,所以PHP有一个内置的getopt()函数,它返回有关用户提供的程序选项的信息.只是,除非我遗漏了什么,否则它完全被淹没了!从手册:

选项的解析将在找到的第一个非选项时结束,后面的任何内容都将被丢弃.

因此,getopt()返回一个仅包含有效和已解析选项的数组.您仍然可以通过查看看到整个原始命令行$argv,它仍未修改,但您如何判断该命令行中何处getopt()停止解析参数?如果您想将命令行的其余部分视为其他内容(例如,文件名),则必须知道这一点.

这是一个例子......

假设我想设置一个脚本来接受以下参数:

Usage: test [OPTION]... [FILE]...

Options:
  -a  something
  -b  something
  -c  something
Run Code Online (Sandbox Code Playgroud)

然后我可以这样打电话getopt():

$args = getopt( 'abc' );
Run Code Online (Sandbox Code Playgroud)

而且,如果我像这样运行脚本:

$ ./test.php -a -bccc file1 file2 file3
Run Code Online (Sandbox Code Playgroud)

我应该期望将以下数组返回给我:

Array
(
    [a] =>
    [b] =>
    [c] => Array
        (
            [0] =>
            [1] =>
            [2] =>
        )
)
Run Code Online (Sandbox Code Playgroud)

所以问题是:在地球上我应该知道三个未解析的非选项FILE参数从$argv[ 3 ]??? 开始

php getopt

25
推荐指数
1
解决办法
7248
查看次数

如何找出std :: istream中可用的字节数?

如果我想要一个缓冲区read()的内容std::istream,我将不得不首先了解有多少数据可用来知道缓冲区的大小.为了从istream中获取可用字节数,我目前正在做这样的事情:

std::streamsize available( std::istream &is )
{
    std::streampos pos = is.tellg();
    is.seekg( 0, std::ios::end );
    std::streamsize len = is.tellg() - pos;
    is.seekg( pos );
    return len;
}
Run Code Online (Sandbox Code Playgroud)

同样地,由于std :: istream :: eof()不是一个非常有用的基金AFAICT,为了找出是否istream得到指针在流的末尾,我这样做:

bool at_eof( std::istream &is )
{
    return available( is ) == 0;
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

有没有更好的方法来获取可用字节数istream?如果不是在标准库中,也许在boost中?

c++ boost stl istream

9
推荐指数
1
解决办法
5207
查看次数

如何在Eclipse中手动安装或强制安装插件?

如何在Eclipse中手动安装插件?或者我如何强制安装程序安装插件,即使它不想?

例如,我正在尝试降级一个插件(一个包含我无法使用的错误的更新).我已经尝试过去About Eclipse -> Installation Details -> Installation History选择以前的配置,但是我试图恢复到一个错误.我还下载了我要回滚的以前版本插件的一体化更新.但是,如果我去Install New Software -> Add -> Archive那时我可以选择更新,但是当我尝试安装它时,我被告知我正在尝试安装的插件"将被忽略,因为已经安装了更新的版本".

我需要一种方法来手动安装插件或强制安装程序安装旧版本的插件.有谁知道如何实现这一目标?

eclipse eclipse-plugin

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

标签 统计

boost ×1

c++ ×1

eclipse ×1

eclipse-plugin ×1

getopt ×1

istream ×1

php ×1

stl ×1