我需要能够从文本文件中获取数据,该文件以下列格式显示:
起动现金:1500
转弯限制(-1表示没有转弯限制):10
剩余玩家数量游戏:1
物业集乘数:2
酒店门票数量:4
必须平等地建造房屋:是的 把钱放在免费停车场:没有 拍卖物业:没有 登陆的工资乘数:1
为了澄清,我需要结肠后呈现的数据。我真的不确定如何处理这个问题。我正在阅读其他问题并且他们都说要使用fgets
,但我不知道每行会有多长时间而且我们无法静态分配C字符串,所以我将在哪里存储{指向的行{1}}?此外,是否可以使用fgets
执行此操作(我们已经了解了如何执行fscanf
但未学习fscanf
)?接近这个时我的想法是得到每一行,然后使用sscanf扫描每一行(我认为这会起作用)使用我不需要的字符串文字:
fgets
这会有用吗?
答案 0 :(得分:1)
使用fopen()
打开文件后,您可以执行
float cash;
int turnlimit, plyrno, mult, house;
fscanf(fin, "%*[^:]: %f", &cash);
fscanf(fin, "%*[^:]: %d", &turnlimit);
fscanf(fin, "%*[^:]: %d", &plyrno);
其中fin
是FILE
指针。
%[^:]
将扫描,但不包括,遇到:
且*
用于分配抑制;意思是它的值将被读取但不会被分配到任何地方。
阅读到:
之前的点之后,必须读取:
本身后跟空格。因此,:
必须在格式字符串中后跟空格。