【发布时间】:2017-11-29 21:41:56
【问题描述】:
所以我有一个文本文件,我读入一个值并将其存储到一个 char * 中。这个变量总是有一个数字,代表我希望稍后在代码中使用的寄存器,作为第三个字符(即 $R0 或 $R1 等)。我想存储到一个名为 register_index1 的预初始化 int 中。作为参考,从下面的 strtok 读取的值是 $R1。
我尝试使用:
input_E_human = strtok(NULL, " ,");
register_index1 = atoi(input_E_human[2]);
但这使我的程序出错并且无法编译,所以我在网上看到你可以这样做:
input_E_human = strtok(NULL, " ,");
register_index1 = input_E_human[2];
但这也不起作用。它可以编译,但如果我这样做:
printf("%d",register_index);
它打印出数字 49,而不是 1。这(显然)在我的代码中稍后会导致意外行为。任何帮助将不胜感激...
【问题讨论】:
-
这些值是否总是具有相同的长度 (
3)? -
或许
sscanf(input_E_human, "$R%d", &register_index);