小编ph4*_*t0m的帖子

为什么WPA2-PSK密钥长度限制为63个字符?

我想知道为什么WPA2-PSK的密码只有63个字符的限制.它甚至不是两个人的力量,对我来说看起来很不寻常,但肯定对这个数字有一些更深刻的含义.

key wlan wpa

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

用于使用sscanf解析输入的C++替代方法

假设我的程序需要表单的参数[ 0.562 , 1.4e-2 ](即浮点数对),我应该如何在没有正则表达式的情况下用C++解析这个输入?我知道在用户输入时需要考虑很多极端情况,但我们假设给定输入与上述格式紧密匹配(除了更多的空格).

在C中,我可以做一些类似于sscanf(string, "[%g , %g]", &f1, &f2);提取两个浮点值的东西,这非常紧凑.

在C++中,这是我到目前为止所提出的:

std::string s = "[ 0.562 , 1.4e-2 ]"; // example input

float f1 = 0.0f, f2 = 0.0f;

size_t leftBound = s.find('[', 0) + 1;
size_t count = s.find(']', leftBound) - leftBound;

std::istringstream ss(s.substr(leftBound, count));
string garbage;

ss >> f1 >> garbage >> f2;

if(!ss)
  std::cout << "Error while parsing" << std::endl;
Run Code Online (Sandbox Code Playgroud)

我怎么能改进这段代码?特别是,我关注garbage字符串,但我不知道如何跳过,这两个值之间.

c++ parsing scanf

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

C++:覆盖由另一个方法调用的受保护方法

我有一个关于C++继承的非常基本的问题:

class A
{
public:
  void foo() { print(); }
protected:
  void print() {}
};

class B : public A
{
protected:
  void print() { std::cout << "test" << std:: endl; }
};
Run Code Online (Sandbox Code Playgroud)

现在以下代码

B b;
b.foo();
Run Code Online (Sandbox Code Playgroud)

不打印任何东西,所以foo()显然没有调用新定义的print().这只能通过虚拟方法解决吗?

c++ inheritance

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

C++:存储复制操作不合理或不可能的资源

我想写一个ContentManager为游戏加载和维护不同类型资产的类(与XNA的ContentManager相比).我的头文件如下所示:

class ContentManager
{
public:
  ContentManager(Direct3D& d3d, const std::string& rootDirectory = "Resource");
 ~ContentManager();

  template<typename T>
  const T& Load(const std::string& assetName);

private:
  Direct3D& d3d_;
  std::string rootDirectory_;

  std::map<std::string, Texture> textures_;
};
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我有一个每种资产类型的地图(目前只针对纹理)和一个泛型Load<T>()方法,我会为我想要存储的每种资产类型显式实例化.Load<Texture>()从磁盘读取图像文件(如果它尚未在地图中),创建一个新的Texture,将其插入到地图中并返回它.

我的Texture班级基本上创建和封装了原始IDirect3DTexture9遵循RAII成语(析构函数调用Release()texture_):

class Texture
{
public:
  Texture();
  Texture(Direct3D& d3d, unsigned int width, unsigned int height, 
    const std::vector<unsigned char>& stream);

  ~Texture();

  IDirect3DTexture9* GetD3DTexture() const { return texture_; }

private:
  IDirect3DTexture9* texture_;
}; …
Run Code Online (Sandbox Code Playgroud)

c++ directx move-constructor directx-9

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

标签 统计

c++ ×3

directx ×1

directx-9 ×1

inheritance ×1

key ×1

move-constructor ×1

parsing ×1

scanf ×1

wlan ×1

wpa ×1