小编mas*_*oud的帖子

为什么Qt会拒绝有效的JSON?

使用Qt-5.0,我有这个JSON字符串

{"type":"FILE"}
Run Code Online (Sandbox Code Playgroud)

我希望fromBinaryData接受.toLocal8Bit()字符串作为有效格式,但事实并非如此.

QString j = "{\"type\":\"FILE\"}";

auto doc = QJsonDocument::fromBinaryData(j.toLocal8Bit());

doc.isNull() // It's true, means the entry is not valid
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

c++ qt json

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

包含标准头后,Vim代码完成不起作用

我必须在文本模式debian linux中开发我的项目.我正在使用Vim,我在其上安装了clang_completion插件.我.clang_completion在我的项目的根目录中创建了文件:

-I.
-I/usr/include
-I/usr/include/c++/4.6
Run Code Online (Sandbox Code Playgroud)

当我写下面的程序时,完成工作正常.

//#include <stdio.h>
int main()
{
  struct A
  {
    int x, y;
  };

  A a;
  a. // After putting dot, the suggestion popup appears

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

但是,删除第一行的注释后,它不起作用!我怎样才能克服这个问题?

c++ vim autocomplete

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

从C++ 03迁移到C++ 11

可能重复:
C++ 11中引入了哪些重大变化?

我已经阅读了很多关于C++ 11或C++ 0x的内容,目前我正在开发2个平均大小的项目.

其中一个使用Qt框架,另一个使用Poco.在他们两个中我们都使用GCC默认模式(C++ 03).

我认为Qt和Poco都是用C++ 03规范编写的,但我想知道--std=c++0x在我们的项目中启用并使用没有任何特殊不兼容性的新功能是否可行?

有人有任何实验在C++ 11项目中使用大型C++ 03库(特别是Qt和Poco)并遇到一些问题,如果是,哪些问题?

注意:这不是一个重复的问题.我特地谈到了两个着名的Qt和Poco框架.有人可能会说"根据我的经验,不要使用X类的Qt和C++ 11的这个Y新功能...."

c++ gcc c++11

7
推荐指数
0
解决办法
227
查看次数

引用c ++中的引用

我正在阅读c ++中的参考概念,我对C++ Complete Reference中的这个陈述感到困惑.

您无法引用其他参考

那么在这种情况下发生了什么:

    int  var = 10;
    int& ref = var;
    int& r_ref = ref;
    r_ref++;
    cout << "var:" << var << "ref:" << ref << "r_ref:" << r_ref << endl;
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

var:11  ref:11  r_ref:11
Run Code Online (Sandbox Code Playgroud)

c++

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

消除危险字符是否可以避免SQL注入?

有许多出色的方法来保护应用程序免受SQL注入,例如,此问答显示了一些方法如何防止PHP中的SQL注入?.

这个问题是关于已经编写的应用程序.我们不想修改它以提高其安全性.我们想知道所使用的方法是否容易受到注入攻击.

我们需要知道这部分代码是否泄漏数据的原因?

这是一个PHP函数,以消除一些无用的(对我们来说)和可能有害的字符:

function removeBadCharacters($s)
{
   return str_replace(array('&','<','>','/','\\','"',"'",'?','+'), '', $s);
}
Run Code Online (Sandbox Code Playgroud)

它会抛出危险的字符以避免SQL注入攻击(不要担心删除的字符,例如removeBadCharacters应用程序不需要它们):

$x = removeBadCharacters($_POST['data']);

mysql_query("insert into table (x) values ('".$x."');");

// or

mysql_query("select * from into where name = '".$x."';"); 
Run Code Online (Sandbox Code Playgroud)
  • 是否足以使查询安全?

  • 有没有办法绕过removeBadCharacters

  • 怎么可以打破?

php security sql-injection

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

如何在Swift for Linux中读取用户输入或stdin?

如何从Swift for Linux中的标准输入读取用户输入或字符流?

linux swift

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

Jnetpcap,准备UDP/TCP/IP/ICMP数据包

最近,我正在使用Jnetpcap通过网络发送/接收原始数据包.

Jnetpcap提供发送数据包Pcap.sendPacket().此方法获取要发送的原始缓冲区或字节.

另一方面,有org.jnetpcap.protocol.*包含协议头的类,我们可以使用它们来解码捕获的数据包.

当我使用下面的代码来创建一个Ip4数据包时,它会导致NullPointerException:

import org.jnetpcap.protocol.network.Ip4;

public class Test {

    public static void main(String[] args) {

        Ip4 ip4 = new Ip4();

        ip4.ttl(10);

    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

Exception in thread "main" java.lang.NullPointerException
    at org.jnetpcap.nio.JBuffer.check(Unknown Source)
    at org.jnetpcap.nio.JBuffer.setUByte(Unknown Source)
    at org.jnetpcap.protocol.network.Ip4.ttl(Unknown Source)
    at jaeger.Test.main(Test.java:17)
Run Code Online (Sandbox Code Playgroud)

我如何构建该数据包然后通过它发送Pcap.sendPacket()

注意:我真的不想逐字节地准备数据包... C/C++ libpcap和Jpcap有工作功能,但我想使用Jnetpcap!

java jnetpcap

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

Scanner.reset()不起作用

这段代码应该从用户获得一个整数,然后完成程序.如果用户输入的号码无效,则会再次询问用户.

捕获异常后,它用于Scanner.reset()重置扫描仪,但它不起作用.并重新抛出先前的异常.

Scanner in = new Scanner(System.in);
while (true) {
    try {
        System.out.print("Enter an integer number: ");
        long i = in.nextLong();
        System.out.print("Thanks, you entered: ");
        System.out.println(i);
        break;
    } catch (InputMismatchException ex) {
        System.out.println("Error in your input");
        in.reset(); // <----------------------------- [The reset is here]
    }
}
Run Code Online (Sandbox Code Playgroud)

我以为Scanner.reset()会重置一切并忘记异常.我在询问用户输入新内容之前先说了一下.

如果我说错了,那么正确的方法是什么?

java

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

初始化列表,用于初始化2D std :: array成员

如何std::array通过初始化列表初始化嵌套(2D)?

template <std::size_t W, std::size_t H>
class Block
{
    std::array<std::array<int, W>, H> block;
public:

    template <typename ...E>
    Block(E&&...e) : block {{std::forward<E>(e)...}} {}
};
Run Code Online (Sandbox Code Playgroud)

该类Block应该能够初始化block成员,如下所示:

Block<3, 2> b {{ {1, 2, 3}, {4, 5, 6} }};
Run Code Online (Sandbox Code Playgroud)

注意:我们可以std::array直接在C++ 11中初始化:

std::array<std::array<int, 3>, 2> b {{ {1, 2, 3}, {4, 5, 6} }};
Run Code Online (Sandbox Code Playgroud)

我正在使用gcc-4.9.0

c++ arrays c++11

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

operator const char*以奇怪的方式覆盖(?)我的另一个变量

#include <iostream>
#include <sstream>

class Vector
{
    double _x;
    double _y;
public:
    Vector(double x, double y) : _x(x), _y(y) {}
    double getX() { return _x; }
    double getY() { return _y; }

    operator const char*()
    {
        std::ostringstream os;
        os << "Vector(" << getX() << "," << getY() << ")";
        return os.str().c_str();
    }
};
int main()
{
    Vector w1(1.1,2.2);
    Vector w2(3.3,4.4);
    std::cout << "Vector w1(" << w1.getX() << ","<< w1.getY() << ")"<< std::endl;
    std::cout << "Vector w2(" << w2.getX() << ","<< …
Run Code Online (Sandbox Code Playgroud)

c++ const overwrite char operator-keyword

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