小编Ben*_*son的帖子

是否有与英文字母类似的字符列表?

对于用Python编写的网络论坛,我正在亵渎亵渎过滤.

作为其中的一部分,我正在尝试编写一个带有单词的函数,并返回该单词的所有可能的模拟拼写,使用视觉上相似的字符代替特定字母(例如,s†å©køv€rƒ|øw).

我希望我不得不随着时间的推移扩大这个列表,以涵盖人们的创造力,但有一个列表浮动在互联网上的任何地方我可以用作起点吗?

python unicode glyph profanity

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

<inttypes.h>的好介绍

我想建议使用的<inttypes.h>做给别人printf用混合32/64位版本.我尝试了谷歌的介绍或教程页面,其中包含一些示例和使用指南,但我找不到一个.

有人可以推荐一个介绍或教程<inttypes.h>吗?

c printf c99

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

返回对象的函数调用和该对象上的方法调用之间是否存在序列点?

如果我写的话f(x)->g(args, ...)可以f(x)在评估之前依赖序列点args, ...吗?我可以通过两种方式看到论点:

  • §1.9.17"在调用函数时(无论函数是否为内联函数),在评估函数体中任何表达式或语句之前发生的所有函数参数(如果有)之后,都会有一个序列点.在复制返回值之后和执行函数之外的任何表达式之前,还有一个序列点. "
  • 另一方面,对象指针隐含地是一个隐藏的参数this,好像我写的g(f(x), args, ...)那样表明它就像一个参数,因此未指定.

->操作是不正常的二元运算符,因为显然g(...) 不能被评估之前f(x),如果我写的是它可以f(x) + g(...).我很惊讶我找不到一些具体的说法.

c++ sequence-points unspecified-behavior

15
推荐指数
1
解决办法
667
查看次数

模板类的内部类可以是非模板类吗?

我正在使用内部实用程序类创建一个模板类.模板的所有特化都需要相同的内部类:

template<...> class Outer {
    class Inner { };
};
Run Code Online (Sandbox Code Playgroud)

这给了我Outer<...>::Inner但我希望所有人都是Inner同一类型,就像我刚写的那样:

class Inner { };
template <...> class Outer { };
Run Code Online (Sandbox Code Playgroud)

或者如果Outer不是模板类:

class Outer {
    class Inner { };
};
Run Code Online (Sandbox Code Playgroud)

给我Outer::Inner.如果可能的话,我想Outer::Inner为所有人工作Outer<>(仅仅是出于命名空间/清晰度原因).当然,我可以搬出Inner去.

c++ templates inner-classes

11
推荐指数
2
解决办法
3098
查看次数

ASM jar - 为什么我的java项目依赖于此?

我有一个Java项目,内部依赖于它asm jar.奇怪的是,我甚至不知道为什么我的项目以某种方式依赖于这个库(可能由maven引入作为传递依赖)?

任何人都可以帮助我知道为什么有人需要asm jar

提前致谢 !

编辑: 你还可以提一下可能需要什么用途/用例asm jar?

java maven-2 java-ee-6 java-bytecode-asm

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

充分利用糟糕的"校验和"算法

我正在研究一种通过串行端口控制8位MCU的现有驱动程序.MCU有许多不同类型的固件,但它们都有共同的方法来尝试确保链路完整性.这个方法不是很强大,我正在寻找有关驱动程序如何修改其行为以充分利用它的想法.

命令是带有行号和校验和的gcode:

N3 T0*57
N4 G92 E0*67
N5 G28*22
N6 G1 F1500.0*82
N7 G1 X2.0 Y2.0 F3000.0*85
N8 G1 X3.0 Y3.0*33
Run Code Online (Sandbox Code Playgroud)

行号必须是顺序的(但可以重置M110).如果校验和不匹配或行号是失序的固件将回复Resend: nnn这里nnn是最后的成功N加1."校验"是极其原始:

        // Calc checksum.
        byte checksum = 0;
        byte count = 0;
        while(instruction[count] != '*')
                checksum = checksum^instruction[count++];
Run Code Online (Sandbox Code Playgroud)

主要问题是主要错误机制是由于中断被保持关闭导致1字节MCU FIFO溢出而丢弃的字节.实际的串行总线在FTDI(或类似)USB串行桥和MCU之间只有几厘米,因此不太可能出现误码.我从来没有在固件的回复中发现有点错误.

正如您所看到的,上面的算法会检测到一个丢弃的字节,但如果丢弃了两个相同的字节(任何地方!),结果仍然匹配.因此F3000.0(进给率3000mm/min)可以转化为F30.0并仍然匹配.此外,字符集非常小,因此永远不会涉及某些位.

驱动程序可以做些什么来使给定的行更健壮吗?

  • 添加或删除尾随(或甚至前导)零
  • 添加或删除空格
  • 重新排序单词(与之X1 Y1相同Y1 X1)
  • 添加或删除空格
  • 在一定容差范围内对值进行"无关紧要"的修改(例如,F2999.9而不是F3000)
  • 重置行号以获取N给定行的特定行
  • 打破单个命令分成多个等效的命令(例如G1 X2变为 …

embedded checksum serial-port driver

9
推荐指数
2
解决办法
1013
查看次数

自动汇总数字列和打印总数

鉴于以下产出git ... --stat:

 3 files changed, 72 insertions(+), 21 deletions(-)
 3 files changed, 27 insertions(+), 4 deletions(-)
 4 files changed, 164 insertions(+), 0 deletions(-)
 9 files changed, 395 insertions(+), 0 deletions(-)
 1 files changed, 3 insertions(+), 2 deletions(-)
 1 files changed, 1 insertions(+), 1 deletions(-)
 2 files changed, 57 insertions(+), 0 deletions(-)
 10 files changed, 189 insertions(+), 230 deletions(-)
 3 files changed, 111 insertions(+), 0 deletions(-)
 8 files changed, 61 insertions(+), 80 deletions(-)
Run Code Online (Sandbox Code Playgroud)

我想生成数字列的总和,但保留行的格式. 为了通用性,我制作了这个awk脚本,它自动对任何数字列求和并生成一个摘要行:

{
    for (i …
Run Code Online (Sandbox Code Playgroud)

language-agnostic awk code-golf

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

当类在main()中时,为什么这个std :: sort谓词会失败?

这是一个非常简化的class Predicaterepro ,它说明了外部的delcared 是如何main()工作的,但是当精确的代码出现在内联时,因为class InlinePredicate编译器无法匹配std::sort.奇怪的是,你可以通过任何东西作为第三个参数std::sort(比如,整数7),你会只得到,当它不支持编译错误operator ()sort期待.但是当我从pred2下面传球时它根本不匹配:

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

class Predicate {
public:
    bool operator () (const pair<string,int>& a, const pair<string,int>& b)
    {
        return a.second < b.second;
    }
};

int
main()
{
    vector<pair<string, int> > a;

    Predicate pred;
    sort(a.begin(), a.end(), pred);

    class InlinePredicate {
    public:
        bool operator () (const pair<string,int>& a, const pair<string,int>& b)
        {
            return …
Run Code Online (Sandbox Code Playgroud)

c++ templates stl

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

为什么cerr刷新cout的缓冲区

#include <iostream>
using std::cout;
using std::endl;
using std::cerr;
#include <cstdio>

int   main( )
{
    char pbuffer[BUFSIZ];
    setbuf(stdout, pbuffer);
    cout << "hello cout" ;
    sleep(5);
    cerr << "hello cerr";
    sleep(5);
    cout << "\nAll   done " << endl;
    sleep(5);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在我编译并运行上面的程序之后,它的输出是:

hello couthello cerr
All   done 
Run Code Online (Sandbox Code Playgroud)

但我认为它应该是:

hello cerrhello cout
All   done 
Run Code Online (Sandbox Code Playgroud)

我想知道,为什么要cerr冲洗缓冲区cout

c++

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

OSX上的独占串行端口访问

我正在开发一个开源程序,它使用gnu.io(RXTX)通过USB串口与微控制器通信.该应用程序可在Windows,Linux和OSX上运行.它依赖于gnu.io便携式串行端口访问.一位Macbook用户发布了一个显示两件事迹象的日志:

  • 当应用程序打开串口时会导致RTS发生脉冲,从而重置微控制器.
  • 当应用程序打开串行端口时,某些东西会暂时改变波特率,导致输入上出现垃圾.(通常这种微控制器/固件/ USB组合不容易受到"线路噪声"类型的不良波特率垃圾特性的影响).
  • 当应用程序处于空闲状态时会定期发生这种情况(在RTS引发的重置后自发消息到达时作出反应/记录)

我怀疑其他一些程序偶尔会打开相同的串口(例如搜索连接的设备).如何在OSX上防止这种情况?

java macos serial-port

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