【发布时间】:2015-12-22 00:48:39
【问题描述】:
我正在尝试使用 fgets 和 sscanf 读取多行不同长度的顶点。
(1,6),(2,6),(2,9),(1,9)
(1,5)
我的程序进入了一个无限循环,卡在第一个顶点内。
char temp3[255];
while(fgets(temp3, 255, fp)!= NULL){
printf("Polygon %d: ", polycount);
while(sscanf(temp3, "(%d,%d)", &polygonx[polycount][vertcount], &polygony[polycount][vertcount]) != EOF){
sscanf(temp3, ",");
printf("(%d,%d),",polygonx[polycount][vertcount], polygony[polycount][vertcount]);
vertcount++;
}
vertcounts[polycount] = vertcount;
vertcount = 0;
polycount++;
}
我必须能够将顶点的 x 和 y 值输入到多边形数组中,所以我坚持使用 sscanf。我也遇到了问题,因为我在互联网上找不到任何可以扫描每行不同数量元素的内容。
【问题讨论】:
-
sscanf一遍又一遍地读取相同的内容,从而导致无限循环。它并没有像你想象的那样前进。 -
早先修复了 sscanf 以及 @iharob 的建议。我的主要问题是我的指针在 fgets() 迭代后没有更新。不管怎么说,还是要谢谢你。 :)
标签: c file-io scanf point-in-polygon