小编d d*_*d d的帖子

在Python中使用Dictionaries代替Case/Switch语句

我想随机化一个初始化为完整的rubik立方体(正确边上的所有颜色).我有移动旋转立方体的函数.我想连续随机选择50个函数来正确随机化它.

我做这个项目了解更多一点关于Python的,因为我主要是做C++,我看到有Python的任何情况下,/开关,所以我要把一本字典.当我创建字典时,代码似乎由于某种原因而执行:

def random_cube(self):
    scramble = {    0 : self.up_turn(),
                    1 : self.down_turn(),
                    2 : self.left_turn(),
                    3 : self.right_turn(),
                    4 : self.front_turn(),
                    5 : self.back_turn(),
                    6 : self.up_turn("inverted"),
                    7 : self.down_turn("inverted"),
                    8 : self.left_turn("inverted"),
                    9 : self.right_turn("inverted"),
                    10: self.front_turn("inverted"),
                    11: self.back_turn("inverted")
                }
    for x in range(50):
        i = random.randint(0,11)
        scramble[i]
Run Code Online (Sandbox Code Playgroud)

因此,当我创建这个字典时,由于某种原因(我认为)它似乎贯穿并执行所有11个条目.我似乎无法找到更好的方法,至少比if/elif长语句更优雅.

!编辑:实现这两个建议,任何建议都没有设置函数的("倒")标志.例如,调用1和7都会给我down_turn,但是输出显示标志在它应该在7号时没有设置.

有任何想法吗?

python random dictionary rubiks-cube

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

RegSetValueEx函数写乱码

我在下面的代码中使用 RegSetValueEX ,它将值设置为难以理解的字符(看起来像中文)。我猜测整个美丽的编码世界有些什么?

HKEY regKey;
std::string newIP = "192.168.1.2";

Result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("Comm\\VMINI1\\Parms\\TcpIp"), 0, 0, &regKey);
if (Result == ERROR_SUCCESS)
{
    Result = RegSetValueEx(regKey, TEXT("IPAddress"), 0, REG_SZ, (const BYTE*)newIP.c_str(), newIP.size() + 1);
    if (Result == ERROR_SUCCESS)
    {
        std::cout << "Done!";
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,当我查看注册表项时,IP 地址并未设置为提供的值,而是随机字符。可能是什么问题呢?

c++ registry winapi windows-ce

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

fread()的问题总是返回1

我看过类似的问题,但我的情况有点不同.我确保以二进制模式打开文件并检查读取时是否发生错误.

文件内容:

message1, message2, 53467
Run Code Online (Sandbox Code Playgroud)

程序读取简单文件:

int bytesRead;
FILE* CSV;
CSV = fopen("\\Temp\\csv.txt", "rb");
char dataBuf[128];

while ( (bytesRead = fread(dataBuf, 1, sizeof(dataBuf), CSV) > 0) )
{
        if (ferror(CSV))
            //handle error

        //do stuff with dataBuf contents
}
Run Code Online (Sandbox Code Playgroud)

fread()总是返回1.还没有输入ferror,所以没有文件读取错误.但是,char数组dataBuf填充了文件中的整个消息.我正在使用fread与另一个函数一起使用,所以我需要知道使用fread()读取了多少字节.有任何想法吗?

c embedded file fread windows-ce

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

标签 统计

windows-ce ×2

c ×1

c++ ×1

dictionary ×1

embedded ×1

file ×1

fread ×1

python ×1

random ×1

registry ×1

rubiks-cube ×1

winapi ×1