如何从txt文件中取出数字和单词并将它们分配给int和char *

时间:2012-06-01 23:01:59

标签: c

我正在制作基于文本的游戏,并希望用户能够保存。当它们保存时,所有变量都将保存到文本文件中。

我无法弄清楚如何将它们从文件中取出并将它们分配给特定的变量和指针。

该文件看起来有点像这样:

jesse
hello
yes
rifle
0
1
3
20

无论如何,我可以指定我想用fscanf取出哪一行?或者我必须采取不同的方法?

3 个答案:

答案 0 :(得分:1)

尽管我不能确切地说出你想要什么,我会做一些建议:

  • 使用SQLite文件而不是文本文件。这样您就可以使用SQL来准确获取所需内容。您的快捷方式:http://www.sqlite.org/

  • 如果您仍想使用文本文件,请使用逗号分隔而不是空格分隔。这种做法更常见。

答案 1 :(得分:1)

无法指定要读取的行,因为C中的文件流概念未明确区分新行。他们只是被视为一个角色。要从特定行读取,您必须使用fseekfgetc向前循环,直到找到'\n',此时您可以更新包含流指向的当前行号的某个变量到。

解决这个问题的一种方法是在固定的偏移处获得信息。例如,假设您正在存储玩家信息,那么如果您将玩家信息设置为固定大小X并且将固定索引的组成数据放入每个结构中,您可以立即fseek到正确的位置。

但是,如果您有结构化数据,则可能更适合使用能够代表这些结构的格式,例如XML或JSON。

答案 2 :(得分:0)

我为我的C程序创建了一个简单的设置阅读器,也许你知道如何解析测试文件可能会有用 https://codereview.stackexchange.com/questions/8620/coding-style-in-c