相关疑难解决方法(0)

如何防止scanf导致C中的缓冲区溢出?

我用这个代码:

while ( scanf("%s", buf) == 1 ){
Run Code Online (Sandbox Code Playgroud)

什么是防止可能的缓冲区溢出的最佳方法,以便它可以传递随机长度的字符串?

我知道我可以通过调用例如限制输入字符串:

while ( scanf("%20s", buf) == 1 ){
Run Code Online (Sandbox Code Playgroud)

但我更愿意能够处理用户输入的任何内容.或者这不能使用scanf安全地完成,我应该使用fgets?

c scanf overflow

75
推荐指数
4
解决办法
9万
查看次数

如何在卡萨布兰卡优雅地解析URI

如何在C++中优雅地解析请求(服务器端)的URI?

URI在Casablanca文档中定义为:

protocol:// server [:port]/path?query#fragment

让我们说,我希望路径(包含所有元素)作为列表,并将查询作为键/值对列表

HTTP://服务器/富/酒吧VAL1 = 1&VAL2 =哟

会导致

std::list<string> path;
path.push_back("foo");
path.push_back("bar");

std::list<std::pair<string, string>> query;
query.push_back(std::make_pair("val1", "1"));
query.push_back(std::make_pair("val2", "yo"));
Run Code Online (Sandbox Code Playgroud)

我想避免像在其他地方提出的那样自己进行解析,主要是出于可移植性和性能方面的原因.

cpp-netlib似乎还不是提升的一部分,我宁愿不引入新的库.

Casablanca有一个URI对象,但我找不到任何解析或迭代器.

有没有办法只使用boost,c ++,casablanca/cpprestsdk来解决这个问题?

c++ rest boost visual-studio casablanca

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

标签 统计

boost ×1

c ×1

c++ ×1

casablanca ×1

overflow ×1

rest ×1

scanf ×1

visual-studio ×1