![]() |
1
2
代码在每行的末尾都有问题,无法读取
这将扫描并保存字符
使用
|
![]() |
2
1
通常,在格式字符串中为
然而,您也遇到了第二个问题
转换规范之间的间距正常;它们使它更具可读性。字符串末尾的换行符表示“读取空白,直到找到非空白的内容”,如果输入来自(磁盘)文件或字符串,则可以,但如果输入来自终端、管道、FIFO、套接字,则会导致灾难。
打电话给
示例数据上的最后一个字段显然不是单个字符。您可能需要一个适合无符号字符的数字
“入站/出站”列很可能是0或1,因此
我会注意到你的结构浪费了相当多的空间。开头的一个字节字段后面有3个字节的填充,结尾还有两个字节的填充。考虑移动彼此相邻的三个无符号字符字段,以在每个结构中节省4个字节(仍然有1个填充字节,但这是对5的改进)。想想这是否重要(可能并不重要)。
此外,您还应该测试
|
![]() |
3
0
倒数第二个转换说明符是
因此,您正在偏离正轨,每一行从最后一行读取的项目比之前的迭代多一个。 |
![]() |
Kagemand Andersen · 用C替换文本文件中的行 7 年前 |
![]() |
Adam Grey · If/else语句仅适用于整数。 7 年前 |
![]() |
Tchae · C中的scanf十六进制到uint8\u t[重复] 7 年前 |