小编seh*_*ehe的帖子

Bash脚本:布尔变量不能正常工作

我试图在Bash脚本中评估一个布尔变量,但它总是返回false.

这是代码:

DEVICE_FOUND=false
tmp=`adb devices | tail -n+2 | awk '{print $1}'`

echo "$tmp" | while read line
do
    if [ "$DEVICE_ID" = "$line" ]
    then
        echo "Found a device"
        DEVICE_FOUND=true
    fi
done

if ! $DEVICE_FOUND
then
    echo "ERROR: The device "$DEVICE_ID" is not connected"
    exit
fi
Run Code Online (Sandbox Code Playgroud)

无论"找到设备"是否被执行,我总是进入if语句.当DEVICE_FOUND = true时,它不应该进入最后一个但是它会进入.

我不明白为什么会这样.

有谁知道吗?

非常感谢你.

bash

3
推荐指数
1
解决办法
2967
查看次数

GDI+ 将字母组合在一起

我觉得我读过一个类似的问题,但我找不到,所以如果重复,请关闭。

我正在尝试Graphics::DrawString使用等宽字体(Consolas)绘制文本。但是,当我绘制文本时,字母的间距不均匀。这是它的样子:

在此处输入图片说明

如您所见,这些字母被分为两个和三个一组。我读了这篇文章,我认为我已经采取了足够的措施来避免它使用StringFormat::GenericTypographic,但显然没有。我也在使用,TextRenderingHintClearTypeGridFit因为所有其他人看起来都像垃圾(TextRenderingHintClearType没有这个GridFit部分就没有)。

如何像所有其他使用等宽字体绘制文本的程序一样绘制文本,使其看起来正确?

c++ fonts gdi+ typography kerning

3
推荐指数
1
解决办法
1024
查看次数

IL Callvirt等价?

il.EmitCall(OpCodes.Callvirt, getter, null);

同样如下:

il.Emit(OpCodes.Callvirt,getter);

我不确定如何检查动态生成的IL,所以......这是第二个相关问题.

c# il

3
推荐指数
1
解决办法
121
查看次数

C++条件运算符性能

我有条件声明expensive_foo(),在99.9%的情况下是假的.我有一个条件陈述bar,在约50%的情况下都是如此.

如果两个陈述都是真的,我想要采取一些行动.所以我几乎肯定知道这expensive_foo()是假的,我想检查它是否bar属实.

下面的代码是否会检查expensive_foo()是否bar属实?或者expensive_foo()每次都会检查?

if ( bar && expensive_foo() )
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

或者我需要制作这样的结构:

if ( bar )
{
    if ( expensive_foo() )
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ performance conditional conditional-statements

3
推荐指数
1
解决办法
1294
查看次数

使用Boost unordered_map

我希望boost::unordered_map在没有下载整个Boost包的情况下包含在我的项目中.我怎样才能做到这一点?

c++ boost unordered-map

3
推荐指数
1
解决办法
622
查看次数

GIT取消回滚提交

我做了一个提交并推动我的git repo.

然后我需要回滚我这样做的提交:

git reset --hard b1b5768c9687455f01bab242ff177a5ee403104f
Run Code Online (Sandbox Code Playgroud)

是否有可能找到第一次提交的SHA?然后再回到它?

git

3
推荐指数
1
解决办法
59
查看次数

string.find("")找不到空格

我正在尝试在用户输入的字符串中查找空间.我想用find()from std::string来返回空间的位置.

如果输入是"Seattle,WA USA",我想要find(" ", 0)返回8,我该怎么做?第8个是","之后的空格

string inputString = " ";
cout << "Enter String to modify" << endl;
cin >> inputString;
int spac = inputString.find(" " , 0);
Run Code Online (Sandbox Code Playgroud)

但是find()继续回来0.我不知道为什么.

c++ string

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

新标准的功能是否会对C++ 11中的boost库实现产生重大影响?

新标准的功能是否会对C++ 11中boost库实现产生重大影响?

鉴于存在可变参数模板,特别感兴趣的是boost::variant(BOOST_VARIANT_LIMIT_TYPES)和boost::spirit部分库.

有关于此的好文章吗?

c++ boost boost-spirit boost-variant c++11

3
推荐指数
1
解决办法
590
查看次数

C ++ boost :: posix_time :: ptime默认值

我班上有一个成员变量:

class Foo
{
// ...
private:
  boost::posix_time::ptime t;
}
Run Code Online (Sandbox Code Playgroud)

我想在构造函数中将其初始化为一个众所周知的值,这样我就知道程序尚未设置它:

Foo::Foo()
   : t(NULL) // doesnt work
{}
Run Code Online (Sandbox Code Playgroud)

但是将其设置为NULL无效,因为它不是指针。

如何初始化boost::posix_time::ptime为众所周知的值?

c++ boost boost-date-time

3
推荐指数
1
解决办法
2169
查看次数

struct c#中的安全固定大小数组

我在嵌入式 MCU 中有一个 C 结构,大约有 1000 个元素,其中包含许多固定大小的数组和其他结构,现在我想使用 C# 将数据传送到 PC

这是我在 C 中的结构元素的简单预览

struct _registers
{
    char name[32];
    float calibrate[4][16];
    float DMTI;
    float DMTII;
    float DMTIII;
    float DMTIE;
    float DMTIIE;
    ....
};
Run Code Online (Sandbox Code Playgroud)

现在我想使用 GCHandle 类将 Struct 转换为 C#,

像这样的东西

//The C struct is in this byte array named buffer
byte[] buffer = new byte[4096];

        GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
       _registers stuff = (protection_registers)Marshal.PtrToStructure(handle.AddrOfPinnedObject(),typeof(_registers));
        handle.Free();
Run Code Online (Sandbox Code Playgroud)

问题是 Visual Studio 抱怨“指针和固定大小的缓冲区只能在不安全的上下文中使用”

有没有办法在没有不安全代码的情况下正常使用它?我发现做这样的事情

[StructLayout(LayoutKind.Explicit, Size = 56, Pack = 1)]
public struct NewStuff
{ …
Run Code Online (Sandbox Code Playgroud)

c# arrays struct

3
推荐指数
1
解决办法
8359
查看次数