怎么把文本文档里5*2的数据读取到二维数组里?

nh1396555275 2014-10-20 03:35:59
本菜鸟刚学c++,遇到点问题
我想把文本文档Point里面5个点的坐标读取到二维数组里面,编译通过了,但就是读不进去,请大侠帮帮我!
Poiint文本文档里有5个点的坐标数据:
1.0,1.0
3.0,4.0
-1.0,-1
-4.0,0
-4.0,-3.0

#include <stdio.h>

FILE *fp=fopen("Point.txt","r");

for (int k=0; k<5;k++)
{
fscanf(fp,"%f,%f",&Data[k][0],&Data[k][1]);
}
fclose(fp);

编译通过,但就是读不进去,哪里有问题?求大神
...全文
139 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
铖邑 2014-10-23
  • 打赏
  • 举报
回复
我搞错了,中间2条回复不是楼主的
铖邑 2014-10-23
  • 打赏
  • 举报
回复
引用 2 楼 nh1396555275 的回复:
谢谢大神回答哈!我用其他方法已经解决了! 不过为了涨点知识,还是试一试你的方法吧! 为什么我读出来的都是0.0000啊 1楼还说数组初始化了就可以了,原来不可以。 我用的也是VC6,你的程序我没有试,不过应该没问题。
你自己看看自己的回复吧,多矛盾啊,你到底试了没有?
nh1396555275 2014-10-23
  • 打赏
  • 举报
回复
我用的也是VC6,你的程序我没有试,不过应该没问题。
铖邑 2014-10-22
  • 打赏
  • 举报
回复
启禀楼主,我运行了没问题的啊,我用VC6,楼主什么环境?
li4c 2014-10-21
  • 打赏
  • 举报
回复
引用 5 楼 zhi_ai_yaya 的回复:
[quote=引用 3 楼 u013163178 的回复:] 我不明白,遇到了逗号该怎么处理呢
要直接读入数字,必须有分隔符(空格或者换行符),逗号作为分隔符肯定要出错啊!! 好端端的,干嘛放个逗号作为分隔符。。。 1.把逗号改成空格,这样直接读入5*2的数字即可。 1.0 1.0 3.0 4.0 -1.0 -1 -4.0 0 -4.0 3.0

FILE *fp=fopen("Point.txt","r");
float data[5][2];
for(int i=0;i<5;i++)
 scanf(fp,"%f%f",&data[i][0],&data[i][1]);
fclose(fp);
2.保留逗号,那就只能读入字符串或者字符数组,再以逗号、空格、换行三个标志进行分割,得到每个坐标值的字符串,再把字符串转换成浮点数。[/quote] 1楼还说数组初始化了就可以了,原来不可以。
我叫小菜菜 2014-10-21
  • 打赏
  • 举报
回复
引用 3 楼 u013163178 的回复:
我不明白,遇到了逗号该怎么处理呢
要直接读入数字,必须有分隔符(空格或者换行符),逗号作为分隔符肯定要出错啊!! 好端端的,干嘛放个逗号作为分隔符。。。 1.把逗号改成空格,这样直接读入5*2的数字即可。 1.0 1.0 3.0 4.0 -1.0 -1 -4.0 0 -4.0 3.0

FILE *fp=fopen("Point.txt","r");
float data[5][2];
for(int i=0;i<5;i++)
 scanf(fp,"%f%f",&data[i][0],&data[i][1]);
fclose(fp);
2.保留逗号,那就只能读入字符串或者字符数组,再以逗号、空格、换行三个标志进行分割,得到每个坐标值的字符串,再把字符串转换成浮点数。
li4c 2014-10-21
  • 打赏
  • 举报
回复
引用 1 楼 xpdavis 的回复:
数组Data初始化一下就可以了 #include <stdio.h> #include <string.h> int main(int argc, char **argv) { float Data[5][2]; FILE *fp=fopen("Point.txt","r"); memset(Data, 0, sizeof(Data)); for (int k=0; k<5;k++) { fscanf(fp,"%f,%f",&Data[k][0],&Data[k][1]); } fclose(fp); }
为什么我读出来的都是0.0000啊
/*************************************************************************
    > File Name: readfile.c
    > Author: Jukay
    > Mail: hellojukay@gmail.com 
    > Created Time: 2014年10月21日 星期二 21时50分28秒
 ************************************************************************/
#include<string.h>
#include<stdio.h>
int main()
{
	float date[5][2];
	memset(date,0,sizeof(date));
	FILE *fp = fopen("a.txt","r");

	for(int k=0; k<5; ++k)
	{
		fscanf(fp,"%f %f",&date[k][0],&date[k][1]);
	}
	fclose(fp);
	for(int k=0; k<5; ++k)
	{
		printf("%f,%f\n",&date[k][0],&date[k][1]);
	}

	return 0;
}
li4c 2014-10-21
  • 打赏
  • 举报
回复
我不明白,遇到了逗号该怎么处理呢
nh1396555275 2014-10-21
  • 打赏
  • 举报
回复
谢谢大神回答哈!我用其他方法已经解决了! 不过为了涨点知识,还是试一试你的方法吧!
铖邑 2014-10-20
  • 打赏
  • 举报
回复
数组Data初始化一下就可以了 #include <stdio.h> #include <string.h> int main(int argc, char **argv) { float Data[5][2]; FILE *fp=fopen("Point.txt","r"); memset(Data, 0, sizeof(Data)); for (int k=0; k<5;k++) { fscanf(fp,"%f,%f",&Data[k][0],&Data[k][1]); } fclose(fp); }
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧