bool CheckParse( int argc, char** argv ) { bool bRes = false; if( argc != 4 && argc != 5 ) goto out; if( argc == 4 && argv[1][1] == 'k' ) { //! 生成公、私钥对 if( !IsNumber( argv[2] ) || !IsNumber( argv[3] ) || atoi( argv[2] ) > MAX_PRIME || atoi( argv[3] ) > MAX_PRIME ) goto out; } else if( (argc == 5) && (argv[1][1] == 'e' || argv[1][1] == 'd') ) { //! 加密、解密操作 if( !IsNumber( argv[3] ) || !IsNumber( argv[4] ) || atoi( argv[3] ) > MAX_NUM || atoi( argv[4] ) > MAX_NUM ) goto out; } else Usage(*argv); bRes = true; out: return bRes; }改成c语言
时间: 2023-12-31 22:03:44 浏览: 26
bool CheckParse(int argc, char** argv) {
bool bRes = false;
if (argc != 4 && argc != 5)
goto out;
if (argc == 4 && argv[1][1] == 'k') {
// 生成公、私钥对
if (!IsNumber(argv[2]) || !IsNumber(argv[3]) || atoi(argv[2]) > MAX_PRIME || atoi(argv[3]) > MAX_PRIME)
goto out;
} else if ((argc == 5) && (argv[1][1] == 'e' || argv[1][1] == 'd')) {
// 加密、解密操作
if (!IsNumber(argv[3]) || !IsNumber(argv[4]) || atoi(argv[3]) > MAX_NUM || atoi(argv[4]) > MAX_NUM)
goto out;
} else {
Usage(*argv);
}
bRes = true;
out:
return bRes;
}
相关问题
bool setPBowner(char* name){ if(name==NULL) return false; if(strcpy_s(PBowner,SIZE-1,name)==0) return true; else return false; }
这是一个 C++ 中的函数,用于设置 PBowner(可能是一个字符串类型的成员变量)的值。函数的参数是一个 char 类型的指针,指向要设置为 PBowner 的字符串。函数首先检查 name 是否为 NULL,如果是,则返回 false。接下来,函数使用 strcpy_s 函数将 name 复制到 PBowner 中。strcpy_s 是一个安全的字符串复制函数,用于避免缓冲区溢出。如果复制成功,则返回 true,否则返回 false。函数中的 SIZE 变量可能是 PBowner 缓冲区的大小。
有无问题bool SuccessfulOpen(FILE* Fp) { if (NULL == Fp) return true; else return false; }
这个函数的逻辑有误。如果文件指针 `Fp` 为空指针,则返回 true,表示打开文件成功;否则返回 false,表示打开文件失败。这显然是错误的。正确的逻辑应该是,如果文件打开成功,则返回 true,表示操作成功;否则返回 false,表示操作失败。修改后的代码如下:
```c
bool SuccessfulOpen(FILE* fp) {
if (fp != NULL) {
return true; // 打开文件成功
}
else {
return false; // 打开文件失败
}
}
```
或者更简洁地写成:
```c
bool SuccessfulOpen(FILE* fp) {
return (fp != NULL);
}
```
这样,当 `fp` 为空指针时,函数返回 false,表示操作失败;否则返回 true,表示操作成功。