c - Fscanf 无法正确扫描行中的值
问题描述
所以我想读取这些行并将它们保存在一个数组中。你能帮我找出问题吗,因为我无法扫描到线的最后一个值(距离)。
代码:
[...]
typedef struct {
int start;
int end;
double distance;
} data;
[...]
data* vertexes = (data*)malloc(sizeof(data))
FILE* f= fopen("option_c.txt", "r");
if (f == NULL)
{
printf("\n\nThe program couldn't read in the 'option_a.txt' file. The program is going to stop");
return NULL;
}
fscanf(f,"%d\t%d\t%lf", &vertexes[i].start, &vertexes[i].end, &vertexes[i].distance);
printf("%d\t%d\t%lf", vertexes[0].start, vertexes[0].distance, vertexes[0].distance);
[...]
我的文件第一行是 1 0 1 我的输出是:1 0 0
我去扔我的文件,我无法扫描最后一个值,但我不知道在哪里搜索问题的根源。我的意见很明确。
提前致谢。
解决方案
您确实意识到您要打印两次距离,对吗?
另一件事\t
是“制表符”的转义字符,所以我相信它是默认的 4 个空格,所以如果你只有一个空格字符分隔文件中的值,你最好使用:
fscanf(f,"%d %d %lf", &vertexes[i].start, &vertexes[i].end, &vertexes[i].distance);
推荐阅读
- angular - 在 Angular 8 中显示 null 的可观察属性
- typescript - 打字稿:检查地图是否包含值时出错
- mysql - 如何通过Sql begineer将group by转换为partition
- python - 无法从带有下拉网页的请求中获取数据
- java - org.springframework.scheduling.quartz.LocalDataSourceJobStore - 处理 1 个错过预定触发时间的触发器
- python - 无法在 Python 中获取 Twitter 用户配置文件数据
- gitlab - 使用when关键字时,Gitlab CI规则关键字将作业标记为阻塞而不是跳过
- c# - 在 C# 中创建图形类
- google-maps - 如何用文本绘制自定义标记?
- powerbi - 直接查询 - 最新版本中的限制