我正在使用带有PIC18的MPLAB C18编译器。我的问题是我无法打印所有值,即使此代码在CodeBlocks上100%工作。我花了3个多小时谷歌搜索这个问题,我不明白是什么导致它。这就是两个编译器上输出的样子。
MPLAB OUTPUT
2
CODEBLOCKS OUTPUT
2
100
200
100
代码
char somestr[] ="2,0100,0200,0100";
char *pt;
int a;
pt = strtok (somestr,",");
while (pt != NULL)
{
a = atoi(pt);
printf("%d\n", a);
pt = strtok (NULL, ",");
}
答案 0 :(得分:3)
谢谢大家的回复,我真的很合适。我找到了解决方案并希望分享。我使用 strtokpgmram 而不是 strtok 。
最终代码
char somestr[] ="2,0100,0200,0100";
char *pt;
int a;
pt = strtokpgmram (somestr,",");
while (pt != NULL)
{
a = atoi(pt);
printf("%d\n", a);
pt = strtokpgmram(NULL, ",");
}