c++ 怎么读取txt文件啊?
我有一个文本文件abc.txt,格式是这样的2459.123.345.33.221.....即每行5个数。我在程序中要读取这5个数,分别给x,yzab。e.xx=2,y=...
我有一个文本文件abc.txt,格式是这样的
2 4 5 9.1 2
3.3 4 5.3 3.2 21
.....
即每行5个数。 我在程序中要读取这5个数, 分别给x, y z a b。
e.x x=2, y=4, z=5, a=9.1 b=2
然后执行程序,执行完再读入下一行, 直到最后一行
应该怎么写这个程序呢?谢谢
另外txt文件中的5个数字之间用空格还是逗号分开啊? 展开
2 4 5 9.1 2
3.3 4 5.3 3.2 21
.....
即每行5个数。 我在程序中要读取这5个数, 分别给x, y z a b。
e.x x=2, y=4, z=5, a=9.1 b=2
然后执行程序,执行完再读入下一行, 直到最后一行
应该怎么写这个程序呢?谢谢
另外txt文件中的5个数字之间用空格还是逗号分开啊? 展开
3个回答
展开全部
c++ 读取txt文件可以以下二种方法:
第1种、用fgets()来读取文件内容(一次读一行)。
第2种、建立一个指向一维数组的指针如char (*pchr)[len] //len为每行字符串的最大长度文件有多少行,就分配多少堆空间(数据太大,建议不要存放到栈里)譬如行数为x行:
pchr=(char * )malloc(x*len*sizeof(char ))
然后,每存入一行就可以用pchr++来移动存储地址。
如果不知道文件有多少行的话,建议用单链表。
第1种、用fgets()来读取文件内容(一次读一行)。
第2种、建立一个指向一维数组的指针如char (*pchr)[len] //len为每行字符串的最大长度文件有多少行,就分配多少堆空间(数据太大,建议不要存放到栈里)譬如行数为x行:
pchr=(char * )malloc(x*len*sizeof(char ))
然后,每存入一行就可以用pchr++来移动存储地址。
如果不知道文件有多少行的话,建议用单链表。
展开全部
FILE *fin;
float x, y, z, a, b;
if ( (fin = fopen("abc.txt","r") ) == NULL ) {
printf("\007Cann't open input file: abc.txt\n");
exit(1);
};
while ( fscanf(fin,"%f %f %f %f %f", &x,&y,&z,&z,&b)!=EOF)
{
// 其它语句
}
fclose(fin);
txt文件中的5个数字之间用空格还是逗号分开?
"%f %f %f %f %f" 格式用空白分开
"%f,%f,%f,%f,%f" 格式用4个逗号分开
float x, y, z, a, b;
if ( (fin = fopen("abc.txt","r") ) == NULL ) {
printf("\007Cann't open input file: abc.txt\n");
exit(1);
};
while ( fscanf(fin,"%f %f %f %f %f", &x,&y,&z,&z,&b)!=EOF)
{
// 其它语句
}
fclose(fin);
txt文件中的5个数字之间用空格还是逗号分开?
"%f %f %f %f %f" 格式用空白分开
"%f,%f,%f,%f,%f" 格式用4个逗号分开
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的,人家问的是C++,不是C哦。
初学C++的可以用ifstream。
像这样
ifstream fin;
fin.open("abc.txt");
double d;
fin >> d; // 从文件中读入一个浮点数。
等等。你完成可以把fin当成cin来用。采用的C++中流的思想,很直观。分手数的话当然是用空格最好了,因为这种流思想会默认把空格作为分隔。
初学C++的可以用ifstream。
像这样
ifstream fin;
fin.open("abc.txt");
double d;
fin >> d; // 从文件中读入一个浮点数。
等等。你完成可以把fin当成cin来用。采用的C++中流的思想,很直观。分手数的话当然是用空格最好了,因为这种流思想会默认把空格作为分隔。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询