我正在解析一个用逗号分隔的字符串并打印这些值但是由于某种原因,如果我在MPLAB C编译器上运行它,这段代码只打印第一个值。但是,如果我在Codeblocks上运行此代码,它会打印出所有值。
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, ",");
}
我希望输出像这样
2
0100
0200
0100
那真正发生了什么?谢谢!
答案 0 :(得分:0)
我想知道你是如何得到0100
和0200
的(使用%d
说明符,你应该得到100
和200
,{{3} }),但通过运行此代码,绝对应该打印所有输出。代码似乎很好。可能的原因可能不是这样的:
编辑:这样你想要输出为零填充。为此,在%04d
变量时使用printf()
格式说明符。