小编San*_*raj的帖子

如何在C++中将命令行字符串转换为hwnd?

我想用OpenGL在C++中创建一个屏幕保护程序.发送到我的应用程序以在小窗口中预览屏幕保护程序的命令行包含一个数字,它是hwnd屏幕保护程序控制面板小程序中的小监视器窗口.如何将此字符串转换为有效字符串hwnd

c c++ hwnd screensaver command-line-arguments

4
推荐指数
1
解决办法
2011
查看次数

"struct a a1 = {0};" 不同于"struct a a2 = {5};" 为什么?

如果struct a a1 = {0};将结构的所有元素(不同类型)struct a a2 = {5};初始化为零,那么应该将其初始化为5..否?

#include <stdio.h>

typedef struct _a {
    int i;
    int j;
    int k;
}a;

int main(void)
{
    a a0;
    a a1 = {0};
    a a2 = {5};

    printf("a0.i = %d \n", a0.i);
    printf("a0.j = %d \n", a0.j);
    printf("a0.k = %d \n", a0.k);

    printf("a1.i = %d \n", a1.i);
    printf("a1.j = %d \n", a1.j);
    printf("a1.k = %d \n", a1.k);

    printf("a2.i = %d \n", a2.i);
    printf("a2.j = %d \n", …
Run Code Online (Sandbox Code Playgroud)

c struct

4
推荐指数
2
解决办法
740
查看次数

在会话中更改tempdir()(更新R_TempDir)

我正在寻找一种方法来tempdir()在R会话开始后更改位置.我认为需要更新C级全局变量R_TempDir.在R内做这件事的好方法是什么?

c r cran

4
推荐指数
2
解决办法
7335
查看次数

如何实现\ b?

我有以下程序,我试图了解\b转义序列的功能.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int disp(char *a) 
{
    return printf("%s", a); 
}

int main(void)
{
    char *s = "Hello\b\b";

    printf(" %d\n", disp(s));
    printf("%s %d\n", s, strlen(s));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

$ ./a.out 
Hel 7
Hel 7
$ 
Run Code Online (Sandbox Code Playgroud)

正如预期Hello\b\b打印Hellstrlen()返回7包括两个\b字符.

根据C99 5.2.2 \b定义如下:

\b (backspace) Moves the active position to the 
   previous position on the current line. If the 
   active position is at the initial position of 
   a …
Run Code Online (Sandbox Code Playgroud)

c backspace

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

即使字符串以空值终止,程序也会输出奇怪的字符

我正在编写一个程序来读取stdin并输出它.

int main() {
    FILE* inputF = stdin;
    char* inputStr[10];

    fread(inputStr, 1, 9, inputF);
    if(ferror(inputF)) {
        printf("An error occurred");
        return 0;
    }

    inputStr[9] = '\0';

    printf("%s", (const char*)inputStr);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它应该创建一个10个字符长的字符串并读入9个字节的stdin,然后放入'\0'位置9.

当我运行程序时,结果如下:

gab@testvm:~/work/c/fibo$ ./a.out < test.txt
56                                                                                                     `ô
                                                                                                       ga
Run Code Online (Sandbox Code Playgroud)

打印两行和多余字符(向右滚动以查看它们).

可能是什么导致了这个?

c file

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

简单的printf案例

我想*在我的Linux终端窗口上闪烁(星号),所以我想到使用ANSI控制代码并在循环中首先写入*然后sleep(1)写入" "(空格/空字符串)但它不起作用 - 看不到任何东西.为什么?

这是我的代码:

#include <stdio.h>
#include <unistd.h>

void blink(){
    while(1){
        printf("\033[2;2H*");
        sleep(1);
        printf("\033[2;2H ");
    }
}

int main(void){
    blink();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c printf

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

编译库时出现'undefined reference'错误

我在我的代码中添加了第三方库,并在运行时遇到这样的错误make.请帮我理解这个错误.

(.text+0x9b4): undefined reference to `snd_strerror'
/home/bet/Tent/tun/app/Common/hl/lib/libGHAL.a(gfxhal.o): In function `GFX_create_region':
/home/bet/Tent/tun/app/Common/hl/src/GHAL/gfxhal.c:1141: undefined reference to `my_key_handler'
/home/bet/Tent/tun/app/Common/hal/src/GHAL/gfxhal.c:1141: undefined reference to `create_window'
collect2: ld returned 1 exit status
make[2]: *** [all] Error 1
make[2]: Leaving directory `/home/bet/Tent/tun/app/Common/c_app'
make[1]: *** [ctv_all] Error 2
make[1]: Leaving directory `/home/bet/Tent/tun/app/Common'
Run Code Online (Sandbox Code Playgroud)

c unix

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

Python:使用正则表达式进行数据验证

我正在尝试使用它Python regular expression来验证变量的值。

验证规则如下:

  • 该值可以包含a-z、和(no , no , no )中A-Z的任何一个0-9*blank-,
  • 该值可以start是数字(0-9)或字母(a-z, A-Z)*
  • 该值可以end是数字(0-9)或字母(a-z, A-Z)*
  • 中间的值可以包含数字(0-9)或字母(a-z, A-Z)*
  • 不得允许任何其他值

目前我正在使用以下代码片段进行验证:

import re
data = "asdsaq2323-asds"
if re.compile("[a-zA-Z0-9*]+").match(data).group() == data:
    print "match"
else:
    print "no match"
Run Code Online (Sandbox Code Playgroud)

我觉得应该有更好的方法来完成上述任务。我正在寻找类似以下的东西:

validate_func(pattern, data) 
/* returns data if the data passes the validation rules */
/* return None …
Run Code Online (Sandbox Code Playgroud)

python regex

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

C标准库/函数查找硬件的字节顺序

我知道有很多不同的非标准方法来查找(和转换)硬件的字节顺序.例如,是一个!

我们有标准的功能,如htonl(),htons(),ntohl()ntohs()对主机和网络字节顺序之间的值转换.

现在我的问题是,与上面提到的标准宏类似,是否有任何标准的 C宏/函数可用于查找硬件的字节顺序?

c

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

当期望值是int类型且输入的值不是int类型时,如何验证用户输入?

我有以下代码:

#include <stdio.h>

#define MIN 0
#define MAX 9 

int main()
{
    int n;

    while (1) {
        printf("Enter a number (%d-%d) :", MIN, MAX);
        scanf("%d", &n);

        if (n >= MIN && n <= MAX) {
            printf("Good\n");
        } else {
            printf("Damn you!\n");
            break;
        }
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

只要用户输入整数值,上述代码就可以正常工作.例如,

$ ./a.out 
Enter a number (0-9) :15
Damn you!
$ ./a.out 
Enter a number (0-9) :5
Good
Enter a number (0-9) :3
Good
Enter a number (0-9) :-1
Damn you!
$ ./a.out …
Run Code Online (Sandbox Code Playgroud)

c error-handling

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