gpt4 book ai didi

c++ - for循环表现怪异

转载 作者:太空宇宙 更新时间:2023-11-04 07:39:13 25 4
gpt4 key购买 nike

这是我的代码:

for(b = 0; b < 3; b++)
{
int col1 = 0;
printf("b= %d\t" , b);
fgets(payload, sizeof payload, f2);
fputs(payload, stdout);
char *token;

token = strtok(payload, " ");
token = strtok(NULL, " ");
token = strtok(NULL, " ");

while ( token != NULL)
{
int pp;
sscanf(token, "%d", &pp);
token = strtok(NULL, " ");
printf("%d\n" ,pp);
grapharray[b][col1++] = pp;
}
}

在此代码中,我逐行从文件中获取一些值并将它们复制到二维数组中。我正在跳过文件中的前两个值。一切正常,除了我的循环——它将值正确复制到位置 grapharray[b][col1],其中 b==0,但随后跳过 b==1 并直接移动到 b==2 并在 grapharray[2][col1] 处复制文件的下一行。谁能帮我解决这个问题?非常感谢,我将不胜感激。

最佳答案

如果你的第二个

token = strtok(NULL, " ");             

返回 NULL,你的 while 循环将不会进入,看起来 b=2 被丢弃了=> 使用调试器检查 token 的值,并可能检查您的解析器。

编辑:

如果您解析的数据包含制表符 (\t) 而不是空格,则很可能会发生这种情况。也许您想在分词器中使用“\t”。

关于c++ - for循环表现怪异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5794990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com