【发布时间】:2017-03-08 02:44:30
【问题描述】:
我是一名初级程序员,在大学学习。眼下。 我的作业:编写一个基于文本的冒险游戏(经过不到 2 个月的编程学习:/)。
老师说游戏使用的文字,应该保存在一个文件中。 一开始,程序应该从该文件中读取“所有文本”,然后,程序应该使用字符串中的文本(我猜)。
我的第一个想法是我将 1 个句子读入 1 个字符串,但这只是不想解决,因为句子之间当然有空格,但是当我尝试读入时,当程序看到一个空格,它将单词存储在另一个字符串而不是同一个字符串中。
因此,例如: 我的 txt 文件中有 4 行: 第 1 行:你应该走哪条路? 第 2 行:前进 第 3 行:左 第 4 行:右
我认为当我将文本读入 4 个字符串时,第 1 行将在第一个字符串中,第 2 行将在第二个字符串中,依此类推。 但是发生了什么? 'Which' 在第一个字符串中,“way” 在第二个字符串中,依此类推。
很抱歉解释不好,但我希望你们能理解我的问题。 如何仅将第 1 行读入第一个字符串? 我以为程序不会把空格算作“好吧,我应该把这个空格后面的单词放到一个新的字符串中”..
这是导致此“错误”的我的代码:
char decisions[4][200];
FILE *fp;
fp=fopen("text.txt", "r");
fscanf(fp, "%s %s %s %s", &decisions[0], &decisions[1], &decisions[2], &decisions[3]);
fclose(fp);
printf("%s\n %s\n %s\n %s\n", decisions[0], decisions[1], decisions[2], decisions[3]);
decisions[0] 应该从我的 txt 文件的第一行读入问题,而其他 3 个应该有 3 个选择选项。这就是我想要发生的事情:/
【问题讨论】:
-
看
fgets()。 -
我会研究一下,谢谢你的建议!
标签: c arrays string file scanf