小编Arn*_*rah的帖子

在.rc文件中的Ampersand(&)的含义

在Windows上使用WIN32对Windows应用程序进行编码时,要非动态加载资源,必须加载一个*.rc文件,该文件包含用于定义应用程序中常见功能的资源定义语句,如按钮和菜单.在从WinProg阅读WIN32 API的教程时,我遇到了这个令我困惑的代码:

IDR_MYMENU MENU
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "E&xit", ID_FILE_EXIT
    END

    POPUP "&Stuff"
    BEGIN
        MENUITEM "&Go", ID_STUFF_GO
        MENUITEM "G&o somewhere else", 0, GRAYED
    END
END
Run Code Online (Sandbox Code Playgroud)

看看上面的代码,可以理解这个函数是什么.我自己理解代码在.rc文件中做了什么,但让我感到困惑的一件事就是&字符串中间可见的&符号(),例如"G&o somewhere else"(G和O之间)或"E&xit"(E和E之间)X).我对Stack Overflow的具体问题是:&符号在.rc文件中的含义是什么?在编写应用程序时,我必须在哪里放置它们?我已经查看了描述文件功能的MSDN链接,但我无法在文档中得到答案.

c++ windows winapi resource-files visual-c++

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

函数的 C++ 可选 std::vector 参数

我在这里看到了一些答案,但它们可能不适用于这里。我有一个(成员)函数,它主要只与一个参数(第一个)一起使用:

const std::complex<double> Class::func(const std::complex<double> &x, \
                                       std::vector<double> &y = 0, \
                                       std::vector<double> &z = 0) const;
Run Code Online (Sandbox Code Playgroud)

我希望 fory并且z是可选的,甚至可能基于 type 的第四个参数string,类似于这样的:func( , , , const std::string &choice),但这只会让我只将一个参数传递给函数,而其他两个参数不会被使用。y例如,如果我确实通过了,它的声明必须在调用之前完成func(),对于 来说也是如此z,但我希望这是可选的,该函数在数学方面可能有点繁重,无需添加如果不需要,计算两个额外向量的负担。这可能吗?

c++ vector default-arguments

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

在代码中声明常量或使用数字

所以,我有这个C++测试,老师很难声明常量,而不是直接在代码中使用数字.在下面的例子中,我甚至将ZERO声明为常量.

这是不必要的还是这是一件好事?这种方式会占用更多内存还是使代码"变慢"?

int main() {

    int kmStart, kmEnd;
    const int ZERO = 0;

    cout << "Starting Kms? ";
    cin >> kmStart;

    cout << "Ending Kms? ";
    cin >> kmEnd;

    while (kmStart < ZERO || kmStart > kmEnd) {
        cout << "Invalid Input!" << endl << endl;

        cout << "Starting Kms? ";
        cin >> kmStart;

        cout << "Ending Kms? ";
        cin >> kmEnd;
    }

}
Run Code Online (Sandbox Code Playgroud)

c++ const constants

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

Python:在字符串中匹配自定义日期格式

我有一个像这样的字符串:

>>> string = "bla_bla-whatever_2018.02.09_11.34.09_more_bla-123"
Run Code Online (Sandbox Code Playgroud)

我需要从中提取日期2018.02.09_11.34.09.它将始终采用这种格式.

所以我尝试过:

>>> match = re.search(r'\d{4}\.\d{2}\.\d{2}_\d{2}\.\d{2}\.\d{2}', string)
Run Code Online (Sandbox Code Playgroud)

它正确地从该字符串中提取出日期:

>>> match.group()
'2018.02.09_11.34.09'
Run Code Online (Sandbox Code Playgroud)

但是当我尝试从这个字符串创建一个datetime对象时,它不起作用:

>>> datetime.datetime.strptime(match.group(), '%Y.%m.%d_%H.%I.%S')
ValueError: time data '2018.02.09_11.34.09' does not match format '%Y.%m.%d_%H.%I.%S'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python datetime date

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

用C++输入结构元素

我正在尝试在C++ 14中实现一个结构.我已经创建了一个具有3个int值的结构

struct mystruct{
    int a;
    int b;
    int c;
};
Run Code Online (Sandbox Code Playgroud)

在我的main函数中,我用以下方式初始化结构数组:

int main(){
    mystruct X[] = {{1,2,3}, {4,5,6}};
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

我将把这个数组传递给一个函数,我将对它执行一些操作.这个功能可能是这样的:

int myfunc(mystruct X[]){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

如何将此数组的值作为用户输入使用cin,而不是对它们进行硬编码(可能使用对象)?我不知道该如何解决这个问题.

编辑:我希望这可以以某种方式使用对象实现

c++ arrays structure c++14

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

如何在不发出示例请求的情况下检查 requests.Session 是否已通过身份验证?

假设我有一个requests.Session,如下所示:

import requests

with requests.Session() as session:
    session.auth = ('username', 'password')
Run Code Online (Sandbox Code Playgroud)

根据上面的代码,如何验证身份验证是否有效?目前,使用 Github API,我只是发出一个示例请求,然后查看响应是否为 401,在这种情况下,身份验证无效。

有没有一种方法可以检查此身份验证而无需发出示例请求?

python authentication python-3.x python-requests

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

如何在没有类型代码的情况下普遍引用类的实例?

我正在制作一个基于文本的RPG,其中我有一个抽象Item类.从这个Item班,我有课Weapon,Potion,Key,和Armor.主要角色类,Protagonist使用这些项目并具有功能doItemEffect(Item*).我如何doItemEffect(Item*)以一种普遍引用所有项目的方式实施?为了更好地表达我的问题,如果我不清楚,这里有一个使用非常难看的解决方案的例子.

class Protagonist
{
public:
    void doItemEffect(Item* it)
    {
        switch(it->getType()) //<-- The type is an enum class
        {
        case ItemType::WEAPON:
            attackOpponent(it.getAttackPower()); //If it is a weapon it would have this function
            break;
        case ItemType::POTION:
            heal(it.getHealPower()); //If it is a weapon it would have this function
            break;
        case ItemType::KEY:
            //..Code..
            break;
        case ItemType::ARMOR:
            //More Code...
            break;
     }
};
Run Code Online (Sandbox Code Playgroud)

并且有两个类的示例PotionWeapon(类的类型是 …

c++ oop polymorphism c++11

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

常量和文字之间的混淆?

我目前正在TutorialsPoint上阅读有关c ++教程的常量,内容如下:

常量是指程序不能更改的固定值,它们称为文字。(来源

我真的不明白这一点。如果常量称为文字,而文字是直接在代码中表示的数据,那么如何将常量视为文字?我的意思是,以const关键字开头的变量是常量,但它们不是文字,那么如何说常量是文字?

c++ constants literals

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

使字符在屏幕中移动时,window.clear() 如何在 SFML 中工作?

嗯,我一直在看一个关于如何使用 SFML 的教程。我目前正在学习在屏幕上移动精灵。添加 window.clear() 之前;每次我移动精灵时,它都会像一条轨迹一样离开,就像精灵是刷子一样。然后教程人说在 window.draw(player); 之前添加 window.clear

你能解释一下这背后的逻辑吗?就像,窗口被清除,然后绘制角色并显示它。这是代码:

#include <SFML/Graphics.hpp>
#include <iostream>

int main() {
    sf::RenderWindow window(sf::VideoMode(1920, 1080), "Screen", sf::Style::Default);
    sf::RectangleShape player(sf::Vector2f(100.0f, 100.0f));
    player.setFillColor(sf::Color::Green);

    //run as long as the window is open
    while (window.isOpen()) {
        // check all the window's events that were triggered since the last iteration of the loop
        sf::Event evnt;
        while (window.pollEvent(evnt)) {
            switch (evnt.type) {
            case sf::Event::Closed:
                window.close();
                break;
            case sf::Event::Resized:
                printf("New window width: %i New window height: %i\n", evnt.size.width, evnt.size.height);
                break;
            case sf::Event::TextEntered:
                if …
Run Code Online (Sandbox Code Playgroud)

c++ logic sfml

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

如何在for循环中运行并行线程(C++)

for (int i = 0; i < 16; i++)
{
    thread myThread(compute_mandelbrot, -2.0, 1.0, 1.125, -1.125, ystart, yend);
    ystart = ystart + 30;
    yend = yend + 30;
    myThread.join();
}
Run Code Online (Sandbox Code Playgroud)

我本质上想要并行运行16个线程,每个线程渲染一个mandelbrot图像.我没有看到我如何实现这是在一个for循环中,因为我必须等待线程在创建新线程之前完成.

有没有办法让我运行并行线程而不必一个接一个地创建16个线程?

c++ multithreading

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