小编Nic*_*ick的帖子

获取数字的位数

我有一个这样的数字:int num = 36729;我想得到组成数字的数字位数(在这种情况下是5位数).

我怎样才能做到这一点?

c

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

画布内的中心图像

我有一个Image内部Canvas:

<Canvas>
    <Image HorizontalAlignment="Center" VerticalAlignment="Center" />
</Canvas>
Run Code Online (Sandbox Code Playgroud)

我希望在我的中心显示Image 始终(即使在可能的大小调整之后)Canvas,但是这样,图像在左上角绘制.我能怎么做?

c# wpf

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

指向PointCollection的字符串

如果我有PointCollection:

var points = new PointCollection();
points.Add(new Point(0, 0));
points.Add(new Point(10, 10));
points.Add(new Point(20, 20));
points.Add(new Point(30, 30));
Run Code Online (Sandbox Code Playgroud)

我可以得到相应的string使用:

string str = points.ToString();
Run Code Online (Sandbox Code Playgroud)

现在str是:

0,0 10,10 20,20 30,30

我怎样才能得到相反的过程?

c# string list point

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

为什么我不能抓住这个例外?

为什么我不能抓住以下内容XamlParseException

在此输入图像描述

单击" 继续"按钮后,程序将继续执行正常操作(捕获异常并ex.Message在控制台上打印).

问题是Visual Studio异常对话框.为什么会出现?

c# exception visual-studio xamlparseexception xamlreader

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

为什么复制构造函数在这里调用?

我有以下代码:

template<class T = char>
class String
{
public:

    // Default constructor
    String()
        : buffer(nullptr),
        len(0)
    {
        cout << "Default constructor" << endl;
    }

    // Constructor
    String(const char* s)
    {
        cout << "Constructor (const char*)" << endl;
        //...
    }

    // Virtual destructor.
    virtual ~String()
    {
        cout << "Destructor" << endl;
        len = 0;
        delete[] buffer;
    }


    // Copy constructor
    String(const String& s)
    {
        cout << "Copy constructor" << endl;
        buffer = new T[s.len];
        std::copy(s.buffer, s.buffer + s.len, buffer);
        len = …
Run Code Online (Sandbox Code Playgroud)

c++ constructor copy-constructor

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

结果和 if/else/return 语句 E0308 错误

为什么以下代码在编译时会引发错误?

fn test(n: i32) -> Result<i32, &'static str> {
    if n == 0 {
        Err("error")
    }
    Ok(n + 1)
}
Run Code Online (Sandbox Code Playgroud)

以下是错误:

fn test(n: i32) -> Result<i32, &'static str> {
    if n == 0 {
        Err("error")
    }
    Ok(n + 1)
}
Run Code Online (Sandbox Code Playgroud)

下面两个版本编译没有问题。

  1. else声明:

    fn test(n: i32) -> Result<i32, &'static str> {
        if n == 0 {
            Err("error")
        }
        else {
            Ok(n + 1)
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. return声明:

    fn test(n: i32) -> Result<i32, &'static str> {
        if n == …
    Run Code Online (Sandbox Code Playgroud)

if-statement return rust

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

如何安全使用strnlen?

我试图了解正确的使用方法是什么,strnlen以便即使考虑边缘情况也能安全使用.

例如,具有非空终止字符串作为输入.

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

int main()
{
    void* data = malloc(5);

    size_t len = strnlen((const char*)data, 10);
    printf("len = %zu\n", len);

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

如果我期望一个最大大小10的字符串,但字符串不包含这10个字符内的空字符strnlen将读出边界字节(输入指针可能指向堆分配的数据).这种行为是不确定的?如果是,有没有办法安全地使用strnlen计算字符串的长度,考虑到这种类型的场景,并没有导致未定义的行为?

c strlen

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

无法输入while语句

可能重复:
无符号和有符号比较
unsigned int和signed char比较

当我尝试输入这个while语句时,我有一个奇怪的行为:

unsigned u = 0;
int i = -2;

while(i < u)
{
    // Do something
    i++;
}
Run Code Online (Sandbox Code Playgroud)

但它从来没有进入,即使当我设置一个断点i = -2u = 0.我究竟做错了什么?我怎么能解决这个问题?

c loops

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

调用派生类方法

我有一个基类:

class motorcycle
{
public:

   virtual int speed()
   { return 0; }
}
Run Code Online (Sandbox Code Playgroud)

还有一些继承基类的类(在示例中只有2个,但我可以有很多类):

class honda: public motorcycle 
{
public:

   int speed()
   { return 2; }
}

class yamaha: public motorcycle 
{
public:

   int speed()
   { return 1; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个指向基类的指针,指向派生类之一:

honda* h = new honda();
...
int speed = get_speed(h);
Run Code Online (Sandbox Code Playgroud)

在哪里get_speed:

int get_speed(motorcycle* m)
{
    // How to return speed according to m class?
}
Run Code Online (Sandbox Code Playgroud)

现在,返回速度的最佳方法是什么?

c++ polymorphism c++11

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

模板类专业化和朋友类

我遇到以下情况:

template<typename T, int N>
class Foo
{
};

// specialization for 0
template<typename T>
class Foo<0>
{
   friend class Foo<T, 1>;
};
Run Code Online (Sandbox Code Playgroud)

也就是说,我需要那Foo<T, 1>是朋友Foo<T, 0>,但我有编译错误.这可能吗?

c++ templates friend c++11

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

按值和参考传递参数有什么区别?

可能重复:
传递参考与传递值之间有什么区别?

我读到C语句中的参数是通过值传递的,但是按值传递参数(如在C中)或者通过refencence(如C++ - C#)之间的区别是什么?指针和引用之间有什么区别?

void with_ptr(int *i)
{ *i = 0; }

void with_ref(int &i)
{ i = 0; }
Run Code Online (Sandbox Code Playgroud)

在这些情况下修改两个值?如果是,为什么C++允许通过引用传递参数?我认为在函数内部并不清楚i值是否可以修改.

c c++ pass-by-reference pass-by-value

-1
推荐指数
1
解决办法
4304
查看次数

如何使用PasswordBox作为TextBox?

我有一个PasswordBox,我需要使用此控件即使作为一个TextBox.我需要显示普通文本而不是典型的黑点

在此输入图像描述

有没有财产可以做到这一点?谢谢.

.net c# wpf textbox passwordbox

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