gpt4 book ai didi

C - 将文件中的文本/句子读取到字符串数组中

转载 作者:行者123 更新时间:2023-11-30 18:12:12 29 4
gpt4 key购买 nike

我是一名初级程序员,在大学学习。眼下。我的作业:编写一个基于文本的冒险游戏(经过不到两个月的编程学习:/)。

老师说游戏使用的文本应该存储在文件中。一开始,程序应该从该文件中读取“所有文本”,然后,程序应该使用字符串中的文本(我猜)。

我的第一个想法是我会将 1 个句子读入 1 个字符串,但这只是不想解决,因为句子之间当然有空格,但是当我尝试读入它时,当程序看到一个空格,它将单词存储在另一个字符串中,而不是同一个字符串中。

因此,例如:我的 txt 文件中有 4 行:第 1 行:你应该走哪条路?第 2 行:前进3号线:​​左第 4 行:右

我认为当我将文本读入4个字符串时,LINE 1将在第一个字符串中,LINE 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。如果您知道每个字符串的最大字节数为 200 并且有 4 行,请将其传递给 fgets 进入此循环:

int i;
for (i=0; i<3; i++)
{
fgets(decisions[i], 200, fp);
}

fgets 将 n 个字节读入缓冲区,直到找到新行或 EOF。因此,请确保每行的字符数不超过 200 个。

关于C - 将文件中的文本/句子读取到字符串数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40250326/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com