小编Qua*_*ker的帖子

System.Convert如何适合OO约定?

是不应该在对象之后调用类而不是动作?它只是不符合我学到的OO理论.

有人认为,由于Convert只保留静态方法,因此根本不应该创建它的实例,这可能使它成为可接受的例外.

c# oop

17
推荐指数
3
解决办法
644
查看次数

使用cin.get获取整数

我想逐个得到一串数字,所以我使用一个while循环cin.get()作为逐个获取我的数字的函数.

cin.get()得到数字为chars,即使我正在尝试使用转换我不能让我的变量包含数字值而不是我得到的数字的ascii值作为输入.

c++ casting

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

用`fcntl`和`flock`锁定有什么区别?

我正在阅读几个小时,但无法理解两个锁之间有什么区别.我唯一理解的是,fcntl()lock提供了一个可以锁定特定字节的粒度锁,并且只fcntl()支持NFS锁定.

据说差异在于它们的语义,它们在被重复dup()或同时重复时表现如何fork(),但我无法理解实践中的差异.

我的情况是我正在写入fork()基于服务器的日志文件,其中每个分叉进程在发生某些事件时写入同一文件.我为什么要使用flock(),为什么我要使用fcntl()锁?

c posix locking

13
推荐指数
1
解决办法
4017
查看次数

通过Cin获得十六进制

为什么这段代码不起作用?

int x;
cin >> x;
Run Code Online (Sandbox Code Playgroud)

随着0x1a我的输入得到,x == 0而不是26.

为什么?

c++ hex

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

在制作用于工作和隔离位和字节的二进制掩码时,从Binary转换为Hex的最快方法是什么?

假设我有以下二进制字符串:

110110010110
Run Code Online (Sandbox Code Playgroud)

我只需要第4和第5位,我们学会了使用这样的面具

000000111000
Run Code Online (Sandbox Code Playgroud)

因此,通过二进制&操作,我将得到我想要的位,而我剩下要做的就是将它们移到右边.

由于C不能使用普通二进制数,因此我们被告知最简单的方法是将二进制掩码字符串转换为十六进制数.我的讲师使用超快速方法将二进制字符串转换为十六进制数字.

创建这些面具的最简单,最正确的方法是什么?

c binary bitmask

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

用于打印整数的素数因子元素的递归函数

我需要编写一个递归函数来打印整数的素数因子元素,升序.

void printPrimeFactors(int num)
{
int div;

if (isPrime(num) == true)
    cout << num << " ";

else
{
    for (div = 2; div < num; div++)
    {
        if (isPrime(div) == true && num%div == 0)
            printPrimeFactors(num/div);
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我的输出,20为:

5 2 5 2 2
Run Code Online (Sandbox Code Playgroud)

我的最小输入是素数,递归函数的输入较小num div (smallest prime divider of num).

c++ recursion

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

优雅的方式来确定EOF?

我正在读取一个文本文件,用while(!feof)循环迭代,但每当我使用这个条件时,循环会迭代一个额外的时间.

我用这个'补丁'代码解决了这个问题

while (stop == FALSE)
{
 ...

        terminator = fgetc(input);
        if (terminator == EOF)
            stop = TRUE;
        else
            fseek(input, -1, SEEK_CUR);
}
Run Code Online (Sandbox Code Playgroud)

但它看起来和感觉非常糟糕.

c file eof

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

是一个虚拟函数,其原型不依赖于模板中有效的模板参数吗?

给出以下代码:

template <class T>
class A
{
public:
  virtual void Foo() {};
  virtual void Bar(const T& t) {};
};
Run Code Online (Sandbox Code Playgroud)

我知道Bar不允许上面的虚函数,因为模板是在编译时生成的,虚函数使用虚拟表,这在运行时发生,这意味着该虚拟函数没有有限数量的签名可以满足虚拟表.

但是,如果该功能具有不依赖于签名T,如Foo上述,将仍然是非法的?

c++ templates

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

指向整数的指针数组

我试图排序一个指向整数的指针数组(而不是整数数组本身)

但是当我尝试初始化指向整数数组中整数地址的指针数组时,我的程序崩溃了.

int** pointerSort(int* arr, int size)
{

    int i;

    // allocate memory for result array and verify success of allocation
    int** res = (int**)malloc(size*sizeof(int*));
    if (res = NULL)
    {
        printf("Memory allocation failed\n");
        exit(1);
    }

    // initialize pointers array with addresses
    for (i = 0; i < size; i++)
        res[i] = &(arr[i]);

    // sort the array using merge sort algorithm
    mergeSort(res, size-1);

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

我的程序崩溃了 res[i] = &(arr[i]);

c arrays sorting pointers

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

标签 统计

c ×4

c++ ×4

arrays ×1

binary ×1

bitmask ×1

c# ×1

casting ×1

eof ×1

file ×1

hex ×1

locking ×1

oop ×1

pointers ×1

posix ×1

recursion ×1

sorting ×1

templates ×1