以上各个小例子已经笔记了fscanf的一些特性,它读数据成功与否是看文件中的数据是否与format的转换符相匹配。type就是C语言中的c(字符转换符), d(整型转换符符), e、E、f、g、 G(浮点型转换符), o(八进制类型转换符), s(字符串类型转换符), u(无符号整型转换符), x、X(16进制数转换符)转换符。个人对转换符的理解是这样的:将内存中的二进制转换为某种类型,如%d是将存储到内存中的一段二进制转换为整型数据。
modifiers是用来为某些数据提供进一步类型转换用的,比如%d表示将匹配到的数据转换为整型。但在C语言的数据类型中还分整型和短整(short int),如果想要将读取到的数据转换为短整型就需要使用modifiers(‘h’)来进一步表示将匹配到的数据转换为短整型。同理,对于其它可以有进一步分类的数据类型也一样,modifiers提供相应的符号来供数据的进一步转换。Modifiers符号有:
h,加在d, i, n整数类型转换符前面,整体表示short int类型转换符。加在o, u,x整型转换符前,整体表示unsigned short int类型转换符。
l,加在d, I, n整数类型转换符前,整体表示long int类型转换符。加在o, u, x整型类型转换符前,整体表示unsigned long int类型转换符。加在e, f,g浮点数转换符前,整体表示double类型转换符。
L,加在e, f, g浮点数类型转换符前,整体表示long double类型转换符。
确保检查返回,以确定找到了期待的。而使用%s 式的时候,一定要小心缓冲区溢出。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-22018-3.html
期待新歌