读取txt文件里的数据,有没有通用程序啊?
一行数据比较好办。如果是m行n列的数据呢?(每n个数据换行一次)数据之间还有k个空格。我就不知道啊该怎么办了。。。求思路。。。(数据是int或者double类型的)
如果txt文件里有字符之类的呢?我试了一下,如果txt里面有字符的话用fscanf好像运行不下去。或者说我读的时候想跳过第i行,或者只读int型的数据其他类型的数据跳过不读,又该怎么办呢?
[解决办法]
如果txt文件里有字符之类的呢?我试了一下,如果txt里面有字符的话用fscanf好像运行不下去。或者说我读的时候想跳过第i行,或者只读int型的数据其他类型的数据跳过不读,又该怎么办呢?
你每行的格式要一样。比如:
abc bcd 123
asd sfsd 1
那你可以用 %s %s %d.
如果你是
c plus plus zero x eleven 2011
c++98 1998
这样的两行两列,那你就只能自己分析了。
1.有没有那种函数:先判断当前要读的是不是某个类型,如果是就读完存到数组,如果不是就跳过。这样的函数?
2.fgetc这个函数 我看网上介绍是把文件指针向后移动一位,但是我用的时候,它好像可以跳过空格和回车直接到下一个有值的位置啊。。。难道空格和回车在txt文本里面算空值吗?
1.这种函数可以有,自己写呗。为什么标准库函数里没有?因为这种需求不必要!没有无谓的分析(除非谁闲的蛋疼),既然你要从一个txt文件里读取内容并用于某种计算或分析,那txt里存储的数据就必然满足一定模式(当然有可能存在无效数据),如果你能确保所有数据都是有效的,读取过程不是很easy么?
2.空格和回车属于“blank character”, fgetc会跳过它们
太对了~话说我小看fscanf了。。它可以直接跳过空格和回车
抱歉,上面说错了,貌似fgetc是不会跳过blank character的。fscanf肯定是跳过blank字符的