我正在尝试从 c 中的 .txt 文件中解析多行文本。我现在的方式只解析一行。我想知道如何扫描多行并将它们保存在不同的字符串中
我的代码:
void parser();
#define ROOM_STRING_LENGTH 10000
int main(int argc, char *argv[])
{
parser();
return 0;
}
void parser()
{
FILE * rooms;
int i;
char c;
char roomStrings[ROOM_STRING_LENGTH];
rooms = fopen("assets/rooms.txt", "r");
if(rooms == NULL)
{
printf("error opening file\n");
}
fscanf(rooms, "%s", roomStrings);
while((c=fgetc(rooms))!='\n')
{
roomStrings[i] = c;
i++;
}
printf("%s\n", roomStrings);
fclose(rooms);
}
最佳答案
您可能想要使用 fgets() 而不是 fgetc()。一次读取一整行。 Here is an explanation of fgets().
如果您知道正在阅读的行数,则可以将 roomStrings 设为字符串数组,如下所示:char roomStrings[NUM_LINES][ROOM_STRING_LENGTH]
。否则,有多种方法可以动态调整其大小。
关于c - 将多行文本解析为单独的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22338781/