我正在阅读一个文本文件,其中某些行以星号开头,然后其他行包含指示矩形大小的数字。我对应该如何提取此信息感到非常困惑。如图所示,我最初试图fgets()
读取字符串,然后sscanf
读取整数。
while(fgets(line, MAX_CHARS, infile) != NULL) {
if(line[0] == '*') {
printf("%s\n", line);
}
sscanf(line, "%d%d", &height, &width);
printf("height: %d, width: %d\n", height, width);
}
但它是这样打印的;
*情况1
高度:0,宽度:0
高度:10,宽度:20
....
*案例2:形状
高度:10,宽度:20
高度:7,宽度:7
....
我应该逐个字符地读取此文件吗?
输入示例:(高度和宽度不会立即更新)
*Case #1
10 20
X
X
XXX
*Case #2: Shape
7 7
XX
XX
X
您忘了在else
后面添加零件if
。
while(fgets(line, MAX_CHARS, infile) != NULL) {
if(line[0] == '*') {
printf("%s\n", line);
}
// Missing piece
else {
sscanf(line, "%d%d", &height, &width);
printf("height: %d, width: %d\n", height, width);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句