2

我正在使用带有 PIC18 的 MPLAB C18 编译器。我的问题是,即使此代码在 CodeBlocks 上 100% 有效,我也无法打印所有值。我花了 3 个多小时在谷歌上搜索这个问题,但我不明白是什么原因造成的。这就是两个编译器上输出的样子。

MPLAB 输出

2

码块输出

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, ",");
}
4

1 回答 1

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, ",");
}
于 2013-05-02T18:24:33.833 回答