小编Hub*_*rio的帖子

单个C代码中的printf和wprintf

在代码中使用printfwprintf一起使用时遇到问题.如果首先打印常规字符串,则wprintf不起作用.如果我wprintf先使用则printf不起作用.

#include <stdio.h>
#include <wchar.h>
#include <stdlib.h>
#include <locale.h>

int main() 
{
    setlocale(LC_ALL,"");

    printf("No printing!\n");
    wprintf(L"Printing!\n");
    wprintf(L"Wide char\n");
    printf("ASCII\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

No printing!
ASCII
Run Code Online (Sandbox Code Playgroud)

#include <stdio.h>
#include <wchar.h>
#include <stdlib.h>
#include <locale.h>

int main() 
{
    setlocale(LC_ALL,"");

    wprintf(L"Printing!\n");
    printf("No printing!\n");
    wprintf(L"Wide char\n");
    printf("ASCII\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Printing!
Wide char
Run Code Online (Sandbox Code Playgroud)

我在64位Linux 3.0上使用gcc(GCC)4.6.1 20110819和glibc 2.14.

c gcc internationalization

19
推荐指数
2
解决办法
6893
查看次数

检查当前线程是否拥有锁

假设我有以下代码:

public class SomeClass()
{
    private readonly object _lock = new object();

    public void SomeMethodA()
    {
        lock (_lock)
        {
            SomeHelperMethod();

            //do something that requires lock on _lock
        }
    }

    public void SomeMethodB()
    {
        lock (_lock)
        {
            SomeHelperMethod();

            //do something that requires lock on _lock
        }
    }

    private void SomeHelperMethod()
    {
        lock (_lock)
        {
            //do something that requires lock on _lock
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

锁定内部SomeHelperMethod似乎是多余和浪费的,因为所有呼叫者都已经锁定.但是,简单地删除锁SomeHelperMethod似乎很危险,因为我们以后可能会重构代码并忘记_lock在调用之前锁定对象SomeHelperMethod.

理想情况下,我可以通过断言当前线程在_lock内部拥有一个锁来解决这个问题SomeHelperMethod:

private void SomeHelperMethod() …
Run Code Online (Sandbox Code Playgroud)

.net multithreading locking

17
推荐指数
2
解决办法
4990
查看次数

带负数和无符号分母的模运算的奇怪结果

我在C中有一个数组,我希望以类似于循环缓冲区的方式进行寻址,例如:a[-1]将返回数组的最后一个元素.

为了做到这一点,我尝试使用模运算(显然),问题是,当涉及负数时,我得到了相当奇怪的结果:

-1 % 4 = -1
-1 % 4U = 3
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.

-1 % 4000 = -1
(-1+4000U) % 4000U = 3999
(-1) % 4000U = 3295
Run Code Online (Sandbox Code Playgroud)

问题:值(3295)确实适用于来自C标准(6.5.5#6)的(a/b)*b + a%b shall equal a, truncated towards zero(for a=-1, b=4000)所以它本身不是一个bug ,但为什么标准是这样定义的?!当然,这里必须有一些逻辑......

我如何写a%b以获得负面的合理结果a(因为(a+b)%b停止工作时abs(a)>b)?

测试应用:

#include <stdio.h>
int main(int argc, char **argv) {
  int i=0;
#define MAX_NUM 4000U
  int weird = (i-1)%MAX_NUM;
  printf("%i\n", weird);
  printf("%i\n", …
Run Code Online (Sandbox Code Playgroud)

c math gcc

12
推荐指数
2
解决办法
1854
查看次数

使用'in'运算符(Python)进行多值检查

if 'string1' in line: ...
Run Code Online (Sandbox Code Playgroud)

...按预期工作,但如果我需要检查多个字符串,如下所示:

if 'string1' or 'string2' or 'string3' in line: ...
Run Code Online (Sandbox Code Playgroud)

......似乎没有用.

python

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

如何在Oracle上查看Check Constraint的内容

我没有创建我正在使用的数据库,但我想查看检查约束的详细信息.

我知道列上的检查约束是强制执行一组特定值,我想知道这些值是什么.例如,如果检查约束强制执行字符"Y"和"N",我希望能够查询数据库并查看接受的值是"Y"和"N".

这可以通过查询来完成吗?

oracle constraints

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

Php检查是否声明静态类

我如何检查是否已声明静态类?ex鉴于上课

class bob {
    function yippie() {
        echo "skippie";
    }
}
Run Code Online (Sandbox Code Playgroud)

稍后在代码中如何检查:

if(is_a_valid_static_object(bob)) {
    bob::yippie();
}
Run Code Online (Sandbox Code Playgroud)

所以我没有得到:致命错误:在第3行的file.php中找不到类'bob'

php static object

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

在检查约束中使用日期,Oracle

我试图检查添加以下约束,但Oracle返回如下所示的错误.

ALTER TABLE Table1
ADD (CONSTRAINT GT_Table1_CloseDate
CHECK (CloseDate > SYSDATE),
CONSTRAINT LT_Table1_CloseDate
CHECK (CloseDate <= SYSDATE + 365)),
CONSTRAINT GT_Table1_StartDate
CHECK (StartDate > (CloseDate + (SYSDATE + 730))));
Run Code Online (Sandbox Code Playgroud)

错误:

Error report:
SQL Error: ORA-02436: date or system variable wrongly specified in CHECK constraint
02436. 00000 -  "date or system variable wrongly specified in CHECK constraint"
*Cause:    An attempt was made to use a date constant or system variable,
           such as USER, in a check constraint that was not completely …
Run Code Online (Sandbox Code Playgroud)

oracle date constraints

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

jQuery检查元素是否存在的最简单方法

我以这种方式用jQuery检查元素:

var x = $("div.myElement");
if (x.length > 0) {
    x.show();
}
Run Code Online (Sandbox Code Playgroud)

但我真的不喜欢那样if.有什么方法可以做到更简单吗?

jquery

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

是否有任何GNU R的语法检查器

是否有任何现有工具可以执行与'jslint'或'php -l'相同的功能?

对于大型项目,我们如何在任何单元测试之前确保源代码没有任何拼写错误.

syntax r

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

如何修补`__call__`方法?

我似乎无法修补__call__类实例的方法(是的,我想修补单个实例,而不是所有实例).

以下代码:

class A(object):
    def test(self):
        return "TEST"

    def __call__(self):
        return "EXAMPLE"

a = A()
print("call method: {0}".format(a.__call__))
print("test method: {0}".format(a.test))
a.__call__ = lambda : "example"
a.test = lambda : "test"
print("call method: {0}".format(a.__call__))
print("test method: {0}".format(a.test))

print(a())
print("Explicit call: {0}".format(a.__call__()))
print(a.test())
Run Code Online (Sandbox Code Playgroud)

输出:

call method: <bound method A.__call__ of <__main__.A object at 0x7f3f2d60b6a0>>
test method: <bound method A.test of <__main__.A object at 0x7f3f2d60b6a0>>
call method: <function <lambda> at 0x7f3f2ef4ef28>
test method: <function <lambda> at 0x7f3f2d5f8f28>
EXAMPLE
Explicit call: …
Run Code Online (Sandbox Code Playgroud)

python monkeypatching

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