c - 将多行文本解析为单独的字符串

标签 c parsing

我正在尝试从 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/

相关文章:

C指令未按顺序执行

c - 如何正确传递这个c字符串数组

parsing - 使用 shell 脚本解析 csv 行中的名称值对

java - 分割后字符串变成空白

linux - 如何使用 cut 命令忽略 CSV 文件中的逗号

c - 带结构的 C 中的链表实现

C++ 将字符串编码为 Unicode - ICU 库

有人可以帮我处理此消息吗?

javascript - 如何将类名称中出现的数字相加?

java - 解析具有多个字段的 json 对象