小编Dor*_*Dor的帖子

str.format()引发KeyError

以下代码引发了一个KeyError异常:

addr_list_formatted = []
addr_list_idx = 0

for addr in addr_list: # addr_list is a list
    addr_list_idx = addr_list_idx + 1
    addr_list_formatted.append("""
        "{0}"
        {
        "gamedir"  "str"
        "address"  "{1}"
        }
    """.format(addr_list_idx, addr))
Run Code Online (Sandbox Code Playgroud)

为什么?

我正在使用Python 3.1.

python syntax string-formatting delimiter missing-data

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

从标准输入读取grep的表达式

如何让grep 从标准输入(stdin)读取表达式

例如(以下不起作用):

grep -i -f &0 /path/to/text/file < "/regexp/"
Run Code Online (Sandbox Code Playgroud)

grep stdin

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

最小化malloc()调用的数量可以提高性能?

考虑两个应用程序:一个(num.1)多次调用malloc(),另一个(num.2)调用malloc()几次.两个应用程序分配相同数量的内存(假设为100MB).
对于哪个应用程序,下一个malloc()调用会更快,#1还是#2?
换句话说:malloc()是否在内存中分配了位置索引?

c malloc

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

整齐地列出多行的值

如何在每行末尾没有反斜杠的情况下列出多行中的值?

如果最后没有反斜杠,则无法在多行中创建列表.
例如,以下(错误)代码:

set pets [list 
    cat
    dog
    elephant
]
Run Code Online (Sandbox Code Playgroud)

给出错误:

invalid command name "cat"
    while executing
"cat"
    invoked from within
"set pets [list
        cat
        dog
        elephant
]"
Run Code Online (Sandbox Code Playgroud)

它可以通过在行尾添加反斜杠来修复:

set pets [list \
    cat \
    dog \
    elephant \
]
Run Code Online (Sandbox Code Playgroud)

这是丑陋的,容易出错.

请注意:

  • 我知道使用花括号({&}),但它不允许执行命令并且还保留冗余的空格字符.
  • 可以使用任何其他命令(例如dict create),不仅list如我的示例中那样.

使用Tcl 8.5

tcl

11
推荐指数
1
解决办法
9635
查看次数

BASH中参数之间的评论

我想包含命令参数 - 内联注释,例如:

sed -i.bak -r \
    # comment 1
    -e 'sed_commands' \
    # comment 2
    -e 'sed_commands' \
    # comment 3
    -e 'sed_commands' \
    /path/to/file
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用.在参数行中嵌入注释有不同的方法吗?

bash comments

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

char*指向文字字符串(源代码中硬连线)可以吗?

char*变量是否指向字符串(在源代码中写入)是否可以?
我可以操作/修改为文字字符串分配的空间,只要我不超过它的长度吗?尽管我理解可执行文件的格式,但这很好,但我想确定.谢谢 :)

c

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

为什么struct的tagName经常与typedef的名称不同?

有时我会看到这样的代码(我希望我能正确记住它):

typedef struct st {
    int a; char b;
} *stp;
Run Code Online (Sandbox Code Playgroud)

虽然我熟悉的通常模式是:

typedef struct st {
    int a; char b;
} st;
Run Code Online (Sandbox Code Playgroud)

那么第一个代码示例中的优势是什么?

c struct

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

HTTP响应结束

什么指示没有Content-Length标题的HTTP响应结束?

我已经读过,在某些情况下,该服务器会关闭TCP连接。但是我目睹了在收到所有响应之后存在TCP连接的情况。

因此,在以下情况下会出现一个主要问题:

  • 没有Content-Length标题
  • 收到所有HTTP响应后,TCP连接存在
  • 浏览器希望使用相同的TCP连接来发送更多HTTP请求

在那种情况下,浏览器如何知道可以使用相同的TCP连接?服务器可能会发送更多与第一个HTTP请求相关的内容,而这些内容会与第二个HTTP响应混合在一起。

http http-headers

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

减少堆栈负载,C中的内存分配,并轻松地转换malloc()的返回值

  1. 众所周知,大的本地/全局变量可能导致堆栈溢出.我知道在内存中使用指针和分配空间有助于克服这个问题.但这是唯一的选择吗?如果我在全球范围内拥有(或需要)太多指针,会发生什么?

  2. 关于堆栈空间:全局struct-type变量是否在堆栈中占用空间,或者像指针一样?我是否需要创建结构变量类型的指针以减少堆栈负载?

  3. 以下代码是否也将内存分配给名为的char**变量BIG

    // in the header file  
    typedef struct myStruct {  
        BIG[256][256];  
        int baz;  
    } myStruct;
    
    // in the c file  
    myStruct* foo;  
    foo = (myStruct*) malloc( sizeof(*foo) ); 
    
  4. 如何轻松转换返回值malloc()?问题#3我写道:

    foo = (myStruct*) malloc( sizeof(*foo) );

    但我更喜欢写一些类似的东西:

    foo = (foo) malloc( sizeof(*foo) ); // the compiler reports an error

    这将减轻编辑代码时的痛苦(更改类型时foo).

英语不是我的母语,对于任何不清楚都很抱歉.

c malloc stack overflow

0
推荐指数
1
解决办法
849
查看次数

说"C&C#在功能上是相同的,但不是概念"

我班上提出了关于C和C#的论点.

我说过,说C&C#是相同的(意思是:功能相同,但不是概念).

根据概念不同:C#意味着比C更容易编程.C更具描述性.功能相同:使用C#制作的所有内容 - 您也可以使用C(包括OOP)制作.

是对的吗?

编辑:

在阅读答案时,我注意到我的问题并不清楚.

请参阅语言的语法.好像我在问:对于C程序员来说,学习C#会非常容易吗?或者它就像一个全新的语言(比如组装会有很大不同)......

从这个意义上讲,我会说C和C#几乎是一样的.

(对不起来感到抱歉)

c c#

-2
推荐指数
2
解决办法
497
查看次数