C语言结构体读取txt文件中内容,有逗号

文件为纯数据,每行5个,共10行,行内数据间有逗号隔开,用结构体怎样再能读取数据?

    用字符读出,判断是否为‘,’,是的话就转化为结构体中的一个变量值,再读取判断,直到都读出来。

    写入文件的时候每个数据的字节数都是定好的,直接读取一行,然后用memcpy(char* des,char* str,int n)读取,memcpy(des,str+n,m);从第n个字节读m个字节。

两种都可以,第二种读字符串的时候有点问题,需要再做处理,因为写入文件时字符串是靠后写的,如%10s,你写入abc,存入文件的是“       abc”,而我们需要的是"abc",前面多了空格,所以你要处理下,要不然比较时字符串是不等的。

追问

那也就是说,需要把txt里面的数据排成一样的么?这些数字,有的是一位数,有的是两位数,还有个别的数据是三位数。我是按照第二种方法来的,可是这个txt 文件 如果不改动形式(在某些数据前面填上空格输出是得不到要求的结果的),而且这些数字在后面的编程中还需要使用进行数学运算。

追答

我数字是用%08d,存入文件的,这样读8位就没事了

追问

我的txt是别人直接给出的,要求去调用,有什么办法解决吗?

追答

和判断字符串一样,挨个判断是空格就不要。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-20
包含头文件fxtream

ifstream cin("*****.txt");
string a;
int main()
{
cin>>a;
...............
return 0;
}
此时,*****.txt里的内容就会被读入到字符数组a。
第2个回答  2013-07-20
//定义一个结构链

struct hang
{

int h[5];
struct hang *next
}
hang *head, *p
int i;
FILE *f

....//open file
head=new(hang);
p=head;
for (i=0;i<10;i++)
{
fscanf(f, "%d,%d,%d,%d,%d\n",p.h[0],p.h[1],p.h[2],p.h[3],p.h[4]);
if (i<9)
{

p.next=new(hang);
p=p.next;
}

}
....本回答被网友采纳
相似回答