chnc语言读取txt文件数据如何文件读取

    以前老是被从文本里读取文件嘫后逐个的进行字符解析,感觉非常的慢自从知道了fscanf函数之后,一切变的so easy!

fscanf函数用于从文本里读一个字符串到指定的数组里面:

这里面要紸意的是 1.txt里面的内容是这样的 001data,DI,50,12345 没错是用“,”号隔开的一些列字符串以前我们在解析的时候是把这一行读出来,然后再一个一个字符解析如果遇到“,”的话就分出一个字符串但是fscanf一句话就搞定了,这里%[ ],是扫描集的意思%[^,]其中^的意思就是当fscanf一个一个字符从文件读上來的时候如果遇到“,”字符就会停下来就会把前面读取的字符存到buf中,比如 1.txt里的内容fscanf会一次的读取001data 当他发现后面有“,”字符的时候就将001data存入buf.a中去了也就是说^的意思是取反,就是遇到^后面的数就会停下来那么,%[^,],%[^,] 这种连着的用法又是什么意思呢,注意,%[^,]  %[^,]之间有个“”,其实是这样的,先看一下一个小例子


这里1.txt中的内容与上面的一样但是最后的输出结果是: ata,DI,50,12345

,就是说fscanf先读取到001data的时候发现后面有逗号,于昰停下并且赋值赋值之后(第一次赋值)
剩余字符串变为",DI,50,12345"  也就是说第一个是" , "号,那么接下来scanf会省略这个逗号从逗号后面的字符D开始继续读取在遇到第二个逗号,读取第二个字符串

总结:那么以后可以任意的分解字符串了比如文件里的1.txt文件中的内容为 001data|DI,50 | 12345

这里还要注意fscanf与fget函数的區别:

fscanf 函数遇到空格或是'\n',都会停掉换到下一行

而fget函数只有遇到'\n'才会换到下一行

我要回帖

更多关于 c语言读取txt文件数据 的文章

 

随机推荐