我正在尝试从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]
。否则,有几种方法可以动态调整它的大小。