gpt4 book ai didi

c++ - 要解析为整数值的命令行参数

转载 作者:行者123 更新时间:2023-11-28 02:57:01 27 4
gpt4 key购买 nike

我有以下代码:

TCHAR *cmd_line = GetCommandLine();
TCHAR *token1;
token1 = strchr(cmd_line, L'+');
MessageBox(NULL,token1, _T("test"), NULL);

当我进入

WesOPC.exe +10 -regserver 

在命令提示符下,消息框显示有

"+10 -regserver".

现在,我需要在“+”号 (10) 之后获取 2 个字符并将其存储在整数变量中(将字符转换为整数。

那么,我怎样才能实现这些:

  1. 将“+”后的 2 个字符从 TChar 存储到字符串或字符数组,以适当者为准
  2. 将char数组或字符串转化为整数

////////////////更新代码///////////////////////////////

我在上面的代码中添加了以下几行以将 char 转换为 int

int i, value=0;
for ( i = 0; token1 [ i ] != '\0'; ++i )
{
int digit = token1 [ i ] - '0';// get value of current digit character
value = 10 * value + digit;
}

但它显示“调试断言错误”。

token1[1] 是不是一个正确的陈述。我这样说是因为当我尝试以下行时,它也显示调试错误。

MessageBox(NULL, LPCSTR(token1[1]), _T("test"), NULL);

解决方案在

Unhandled exception for character parsed from command line in Win32 API

最佳答案

如果你确定它总是两个字符,你可以使用

int val = 10 * (token1[1] - '0') + (token1[2] - '0');

如果不总是两位数,使用_ttoi(const char*)token1中提取正确的字符串后获取值。

关于c++ - 要解析为整数值的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21747010/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com