小编tre*_*ker的帖子

在C++中将double转换为固定小数点

我在C++中有一个双变量,并希望将其作为固定的小数点数打印到屏幕上.

基本上我想知道如何编写一个带有一个小数位和一些小数位的函数,并将数字打印到该小数位数,必要时填充零.

例如:

convert(1.235, 2)
Run Code Online (Sandbox Code Playgroud)

会打印出来的

1.24
Run Code Online (Sandbox Code Playgroud)

 convert(1, 3)
Run Code Online (Sandbox Code Playgroud)

会打印出来的

1.000
Run Code Online (Sandbox Code Playgroud)

所以这个功能就像

convert(number as double, number of decimal places)
Run Code Online (Sandbox Code Playgroud)

并简单地将所需的值打印到标准输出(cout).

有谁知道如何做到这一点?

提前致谢.

c++ fixed-point decimal

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

在删除之前测试C++中的void指针

我在C++中有一个数组:

Player ** playerArray;
Run Code Online (Sandbox Code Playgroud)

它在它所在的类的构造函数中初始化.

在析构函数中,我有:

delete playerArray;
Run Code Online (Sandbox Code Playgroud)

除了通过Valgrind测试程序时,它说有一些调用要删除一个void指针:

 operator delete(void*)
Run Code Online (Sandbox Code Playgroud)

我想在调用delete之前测试playerArray是否为void指针以避免此错误.

有谁知道如何做到这一点?

c++ memory valgrind void-pointers delete-operator

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

在Eclipse for C++中更改可执行文件名

我在Eclipse中创建了一个C++项目,目前它构建了一个名为file.exe的可执行文件,但我想将其更改为"file".

我该怎么做呢?

谢谢.

c++ eclipse filenames executable build

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

C++ 使用从数组类型派生的对象填充数组

在 C++ 中,我有一个指向 Player 对象的指针数组,并希望用 Fickle 对象填充它,其中 Fickle 是从 Player 派生的类。这是因为我想要一个通用的 Player 数组,我可以用来自不同类的不同对象填充该数组,这些对象都派生自 Player 类。

我怎样才能做到这一点?

我创建了一个指向 Player 对象的指针数组

Player ** playerArray;
Run Code Online (Sandbox Code Playgroud)

然后将数组初始化为一定大小

playerArray = new Player *[numPlayersIn];
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,以下内容不起作用:

playerArray[i] = new Fickle(0);
Run Code Online (Sandbox Code Playgroud)

如何用 Fickle 对象填充playerArray(Fickel 是从 Player 派生的类)?

谢谢。

更新:

我收到错误消息(在 Eclipse IDE 中):

expected ';' before 'Fickle'
Run Code Online (Sandbox Code Playgroud)

我认为这可能与善变的定义有关。

Fickle.hpp 文件包含:

#pragma once
#include "player.hpp";

class Fickle: public Player {
public:
    // constructor
    Fickle(int initChoice){
        choice = initChoice;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样可以吗?还是有问题?

Player 类头文件有:

class Player {
private:

public:
    int …
Run Code Online (Sandbox Code Playgroud)

c++ arrays polymorphism pointers derived-class

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

C++ const引用和consts之间的区别?

有什么区别:

const double& pi = 3.14;
Run Code Online (Sandbox Code Playgroud)

和(没有&符号):

const double pi = 3.14;
Run Code Online (Sandbox Code Playgroud)

他们似乎都有相同的L和R值,所以有什么区别?

c++ const reference rvalue lvalue

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

Java - "没有可用的缓冲区空间"套接字错误原因?

我正在用Java编写网络程序.我使用ServerSocket和Socket对象使用TCP发送和接收消息.我的程序如果运行一小段时间运行正常但是如果我运行它的时间较长,我会收到以下错误:

java.net.SocketException: No buffer space available (maximum connections reached?): connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

我认为这可能是因为我没有关闭所有套接字但是我已经改变了我的代码:当我想要一个新的套接字并添加了一个finalize方法来关闭它时,我创建了一个类.我还有一个关闭ServerSocket的finalize方法,所以我不知道问题是什么.

在我收到错误之后,如果我立即再次运行程序,它会比以前更快地遇到问题.然后,如果我等待一段时间并运行它,它会回到原来的时间.

我真的无法解决这个问题,而且我一直试图弄清楚这个问题.有谁知道问题是什么?

提前致谢!

更新:

所以我已经弄清楚了错误的来源,这真的很奇怪.我有以下代码导致问题:

try {
        sock = new Socket(InetAddress.getByName(ipaddr), port);
        sock.close();

        // os = sock.getOutputStream();
        // byte[] arr = s.getBytes();
        // os.write(arr);
        // os.close();

    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            sock.close();
        } catch (Exception e) …
Run Code Online (Sandbox Code Playgroud)

java sockets buffer tcp serversocket

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

Python数组合

我正在尝试将一些Python代码移植到Java.我不熟悉Python,以前从未在任何语言中看过这个:

return [c,] + s
Run Code Online (Sandbox Code Playgroud)

这条线究竟意味着什么?特别是[c,]部分.是组合两个数组还是什么?s是整数数组,c是整数.完整功能如下(来自维基百科:http://en.wikipedia.org/wiki/Ring_signature)

def sign(self,m,z):
    self.permut(m)
    s,u = [None]*self.n,random.randint(0,self.q)
    c = v = self.E(u) 
    for i in range(z+1,self.n)+range(z):
        s[i] = random.randint(0,self.q)
        v = self.E(v^self.g(s[i],self.k[i].e,self.k[i].n)) 
        if (i+1)%self.n == 0: c = v
    s[z] = self.g(v^u,self.k[z].d,self.k[z].n)
    return [c,] + s
Run Code Online (Sandbox Code Playgroud)

非常感谢!

python arrays

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