您好!
我是 http、在浏览器中向 CC3220发布一个数字、但该数字在 CC3220内部存储为字符串(指针)。 我可以使用以下命令进行打印:
UART_PRINT ("[链路本地任务]值为:%s\n\r\n、(INT8_t *)(argvArray - actualLen - 1));
其中(argvArray - actualLen - 1)是存储数字各个数字的起始地址
如何将该数字传递给 int 变量? 数字可以包含未知的数字数。
请给出建议。
谢谢、
David
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我是 http、在浏览器中向 CC3220发布一个数字、但该数字在 CC3220内部存储为字符串(指针)。 我可以使用以下命令进行打印:
UART_PRINT ("[链路本地任务]值为:%s\n\r\n、(INT8_t *)(argvArray - actualLen - 1));
其中(argvArray - actualLen - 1)是存储数字各个数字的起始地址
如何将该数字传递给 int 变量? 数字可以包含未知的数字数。
请给出建议。
谢谢、
David
感谢您的回复。 我在命令中收到以下警告。
"int8_t"类型的#169-D 参数与"const char *"类型的参数不兼容
问题是上述命令要求 const char *作为字符串输入。 但是、在我的示例中、字符串是类似这样的变量(new_value):
int8_t * new_value;
new_value =((int8_t *)(argvArray - actualLen - 1));
现在、当我将 new_value 传递到 strtol 命令时、它与 INT8_t *部分不同。 您能建议权变措施吗?
谢谢、
David
我进行了测试、请找到以下详细步骤:
long int new_val_int = 0;
char * pend;
new_val_int = strtol (* new_glob_value、&pend、10);
然后、用于将 new_glob_value 打印为字符串和整数的命令:
UART_PRINT ("test:printing string (INT8_t *)(new_glob_value)提供以下内容:%s\n"r、(INT8_t *)(new_glob_value));
UART_PRINT ("test:printing decimal strtol (* new_glob_value、&pend、10)提供以下内容:%d\n\r"、new_val_int);
结果(我将 new_glob_value 设置为4999):
测试:打印字符串(INT8_t *)(new_glob_value)提供以下内容:4999
测试:打印十进制 strtol (* new_glob_value、&pend、10)给出以下值:0
在某种程度上、strtol 会给出0。 我是否做了错误的事情?
谢谢、
David