小编Vol*_*ven的帖子

使用C/C++中的libcurl下载文件

我正在构建一个应用程序(在Windows上使用Dev-C++),我希望它下载一个文件.我正在使用libcurl这样做(我已经使用packman安装了源代码).我找到了一个有效的例子(http://siddhantahuja.wordpress.com/2009/04/12/how-to-download-a-file-from-a-url-and-save-onto-local-directory-in- c-using-libcurl /)但是下载完成后它不会关闭文件.我想有人给出一个如何下载文件的例子,无论是用c还是c ++.提前致谢!

c curl file download libcurl

54
推荐指数
2
解决办法
15万
查看次数

如何将结构类型定义为多个名称?

我最近开始研究结构和指针,但有些东西我还没有完全理解a的设计struct.我理解structie typedef struct Alias及其内容的声明,但我不明白Get_noAllyp*no_getOf在声明的最后.这些是什么?我也找不到一个好的来源.

typedef struct  Alias {
    char    *s_a_name;
    char    **s_aliases;
    short   *s_dumr;
    int     s_get_sum;
}Get_noAllyp, *no_getOf; /*Here, I don't understand this one. 
                        Where did these two variables come from?
                        And one of them is a pointer.*/
Run Code Online (Sandbox Code Playgroud)

c struct typedef

13
推荐指数
3
解决办法
9166
查看次数

比较两个文件

我正在尝试编写一个比较两个文件内容的函数.

我希望它在文件相同时返回1,如果不同则返回0.

ch1ch2作为缓冲区,我曾经fgets获取我的文件的内容.

我认为eof指针有问题,但我不确定.FILE变量在命令行中给出.

PS它适用于大小低于64KB的小文件,但不适用于较大的文件(例如700MB电影,或5MB的.mp3文件).

任何想法,如何解决?

int compareFile(FILE* file_compared, FILE* file_checked)
{
    bool diff = 0;
    int N = 65536;
    char* b1 = (char*) calloc (1, N+1);
    char* b2 = (char*) calloc (1, N+1);
    size_t s1, s2;

    do {
        s1 = fread(b1, 1, N, file_compared);
        s2 = fread(b2, 1, N, file_checked);

        if (s1 != s2 || memcmp(b1, b2, s1)) {
            diff = 1;
            break;
        }
      } while (!feof(file_compared) || !feof(file_checked));

    free(b1); …
Run Code Online (Sandbox Code Playgroud)

c++

10
推荐指数
4
解决办法
3万
查看次数

Intellisense不使用模板VS2012 ultimate c ++

Intellisense与我的VS工作非常糟糕......

当我使用C++进行编码时,它可以100%正常工作,直到我开始使用模板,然后它就完全停止工作,停止检测错误并且在所有情况下都不会自动完成.

我倾向于认为它与我用我的代码破坏它所做的事情有关.

所以我开始创建一个带有结构的类:

template<typename T>
class List<T>
{
private:
    struct Node
    {
        T value;
        Node* next;
        Node* previous;
    };
    Node* First;
    Node* Last;
...
};
Run Code Online (Sandbox Code Playgroud)

后来,我宣布了一些额外的功能:

template<typename T>
inline T List::First()
{
    return First;
}
Run Code Online (Sandbox Code Playgroud)

到目前为止这么好,intellisense工作100%罚款,但如果我尝试先做 - >它将无法正常工作,VS不会告诉我任何选项(ctrl + space不起作用).

另外,如果我输入一些废话,它不会告诉我这是错的:

sdkjgisjdga->vsrsiib = 123jgi;
Run Code Online (Sandbox Code Playgroud)

我真的不知道该怎么做才能解决这个问题.

感谢您的时间和精力.

PS:我已经尝试重置配置.

编辑:忘了说,如果我不在我的.h文件中使用模板,那么intellisense正常工作.

c++ intellisense visual-studio-2012

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

如何使用MariaDB返回本地时间SQL结果

这个问题已经多次被问及(和回答)MySQL,我确信这些答案也适用于MariaDB,但要么他们没有,要么更有可能我只是做错了.运行这些脚本几分钟后,date返回Sat Feb 24 18:20:38 UTC 2018.我已经得出结论,在大多数情况下,MySQL/MariaDB应该保持为UTC配置,我不会做不同的事情.我确实按预期工作,并将结果发布在下面.

<?php
//php.ini has set date.timezone =America/Los_Angeles

function displayTime($desc,$db) {
    echo("<h5>$desc</h5>");
    $stmt=$db->query('SELECT @@global.time_zone');
    echo 'MariaDb global.time_zone: '.$stmt->fetchColumn()."<br>";

    $stmt=$db->query('SELECT @@session.time_zone');
    echo 'MariaDb session.time_zone: '.$stmt->fetchColumn()."<br>";

    $stmt=$db->query('SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);');
    echo 'MariaDb offset: '.$stmt->fetchColumn()."<br>";

    $stmt=$db->query('SELECT tsValueUpdated FROM points WHERE id=6');
    echo 'Adjusted time: '.$stmt->fetchColumn()."<br>";
}

function getTimezoneFromDb() {
    $tzs = DateTimeZone::listIdentifiers();
    return $tzs[rand(0, count($tzs)-1)];
}

function getOffset() {
    $os=(new DateTime())->getOffset();
    if($os>(13*60*60)) $os=-24*60*60; //MySQL/MariaDB bug for Pacific/Kiritimati, Pacific/Chatham, and Pacific/Apia
    return $os >= 0?'+'.gmdate("G:i", $os):'-'.gmdate("G:i", -$os); …
Run Code Online (Sandbox Code Playgroud)

php mysql timezone pdo mariadb

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

使用nodejs向html发送响应来使用REST

我是Nodejs的初学者,我有一个侧面项目来检查我的端点的状态.

我最初尝试使用XMLHttp,但由于CORS,我的请求被阻止了.现在我想尝试使用节点消耗这些API点,如果它返回200,则绘制该行为绿色,如果其下方将该行描绘为红色.

我的server.js有以下代码

var express = require('express');
var app = express();
var request = require('request');

var port = process.env.PORT || 3000;
app.set('port', (port));

app.use(express.static(__dirname + '/'));
app.get('/', function(request, response) {
  response.render('/');
});

app.listen(app.get('port'), function() {
  console.log('Node app is running on port', app.get('port'));
});

var services = [
    {
        url: 'MyGetEndpoint'
    },
    {
        url: 'MyGetEndpoint'
    }
];

function checkService( url ) {
    request(url, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(response) 
        }
        else{
            console.log(error);
        }
    }); …
Run Code Online (Sandbox Code Playgroud)

html javascript rest node.js

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

如何在 Windows 中按特定顺序连接多个 Markdown 文件

我可以在 LINUX 中使用includes.txt 文件轻松执行此操作:

pandoc -s $(cat includes.txt) -o index.html
Run Code Online (Sandbox Code Playgroud)

其中includes.txt包含:

file1.md
file3.md
file2.md
Run Code Online (Sandbox Code Playgroud)

问题是我现在必须在 Windows 中执行相同的操作,并且无法弄清楚如何按照includes.txt 文件中指定的顺序连接 Markdown 文件,然后将其传递给 Pandoc。

任何帮助表示赞赏。

windows concatenation pandoc

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

在Windows 7中使用Windows.h在C++中更改文件创建日期

我有以下代码:

int main(int argc, char** argv) {
    onelog a;
    std::cout << "a new project";

    //creates a file as varuntest.txt
    ofstream file("C:\\users\\Lenovo\\Documents\\varuntest.txt", ios::app);

    SYSTEMTIME thesystemtime;
    GetSystemTime(&thesystemtime);

    thesystemtime.wDay = 07;//changes the day
    thesystemtime.wMonth = 04;//changes the month
    thesystemtime.wYear = 2012;//changes the year

    //creation of a filetimestruct and convert our new systemtime
    FILETIME thefiletime;

    SystemTimeToFileTime(&thesystemtime,&thefiletime);

    //getthe handle to the file
    HANDLE filename = CreateFile("C:\\users\\Lenovo\\Documents\\varuntest.txt", 
                                FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ|FILE_SHARE_WRITE,
                                NULL, OPEN_EXISTING, 
                                FILE_ATTRIBUTE_NORMAL, NULL);

    //set the filetime on the file
    SetFileTime(filename,(LPFILETIME) NULL,(LPFILETIME) NULL,&thefiletime);

    //close our handle.
    CloseHandle(filename); …
Run Code Online (Sandbox Code Playgroud)

c++ datetime file file-properties

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

如何使用用户定义的密码初始化 AES-256 密钥

如果我想使用 Crypto++ 库加密数据并使用小于 32 字节的用户定义密码怎么办?

现在我有以下代码:

byte passwordBytes[AES::MAX_KEYLENGTH];
byte ivBytes[AES::BLOCKSIZE];
std::string textToEncrypt("encryptMe");
std::string aesKey("passwordFromUser");
std::string ivText("Iv16BytesOfText...");

memset(passwordBytes, 0, sizeof(passwordBytes)); //fill with zeroes first
memcpy(passwordBytes, aesKey.data(), aesKey.size()); //fill with key data
memcpy(ivBytes, ivText.data(), CryptoPP::AES::BLOCKSIZE); //fill iv bytes

CTR_Mode<AES>::Encryption encryption;
encryption.SetKeyWithIV(passwordBytes, sizeof(passwordBytes), ivBytes);

StringSource encryptor(textToEncrypt, true,
    new StreamTransformationFilter(encryption,
            new StringSink(verschluesselterText)
        ,StreamTransformationFilter::NO_PADDING
    )
);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,aesKey小于 32 字节。

要将完整的 32 字节应用于加密函数,我只需用零填充未使用的空间,但这对我来说似乎不是最好的解决方案。

我是否遗漏了有关创建 AES 密钥的信息?使用用户定义的密码?

我的第二个问题,如果用户选择的密码长于 32 字节怎么办?就我而言,密码会被截断,这对我来说听起来不太正确。

感谢您的帮助!

c++ encryption aes crypto++

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

React 16单选按钮onChange不起作用

我尝试了以下形式的几种解决方案,但是没有运气。我想使用updateCategory(),作为道具传递的函数将值单选按钮发送回我的Redux存储,但是我无法触发onChange。另外,如何将单选按钮的值作为参数传递,而不是键入该值?IE浏览器this.props.updateCategory('health')

 <form className="form-inline my-2 my-lg-0">
    <div className="btn-group" data-toggle="buttons">
      <label className="btn btn-secondary active">
        <input
          type="radio"
          name="options"
          value='health'
          checked={false}
          onChange={() => this.props.updateCategory('health')} /> Health
      </label>
      <label className="btn btn-secondary">
        <input
          type="radio"
          name="options"
          value='tattoo'
          checked={true}
          onChange={() => this.props.updateCategory('tattoo')} /> Tattoo
    </label>
    </div>
  </form>
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

如何在创建表之前检查数据库是否存在?

Flutter使用中为数据库创建表之前如何检查数据库是否存在sqflite

例如,如果我要创建数据库doggie_database.db,我如何过早地检查它在表创建中的存在?

final Future<Database> database = openDatabase(
  // Set the path to the database. 
  join(await getDatabasesPath(), 'doggie_database.db'),
  // When the database is first created, create a table to store dogs.
  onCreate: (db, version) {
    // Run the CREATE TABLE statement on the database.
    return db.execute(
      "CREATE TABLE dogs(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)",
    );
  },
  // Set the version. This executes the onCreate function and provides a
  // path to perform database …
Run Code Online (Sandbox Code Playgroud)

flutter sqflite

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

C编程中的声明和定义与extern

这可能看起来很简单,但这个问题在很多方面让我感到痒痒.

  1. 我的问题是关于c中变量的声明和辩护.

互联网上实际上有很多关于这个的解释,并且这个问题不仅有一个解决方案,因为在这个问题上有许多观点.我想知道这个问题的明确存在.

int a;
Run Code Online (Sandbox Code Playgroud)

只是拿这个是一个声明或定义?,这个当我使用时printf,它具有0作为值和地址2335860.但是如果这个声明那么为此分配内存的方式.

int a;
int a;
Run Code Online (Sandbox Code Playgroud)

当我这样做时,它说先前的'a'声明在这里并重新声明'a'没有联系.

  1. 一些消息来源说c中允许重新声明,有些人说不是真的是什么?

c extern

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

为什么我会收到lValue错误?

我是C语言的新手.我对左值误差有疑问.据我所知,当没有存储Rvalue的permanent-address-bearing-variable时,我们得到一个左值错误.在这里,我可以在左侧看到一个变量.但是,我仍然得到左值误差.有人可以清楚我的左值或使用的运算符的概念.

#include"stdio.h"
void main()
{
int x=10,a;
x<0 ? a = 100 : a = 1000;
printf(" %d",a);
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

c

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