Как я могу прочитать строку из файла, который находится перед целым числом - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть этот текстовый файл:

2 6
99 100 14 15 1 4 29 43 15 15
31 24 2 0 2 0 2 0 12 12
1 5 2 6 3 50 2 0 1 100
31 24 2 0 2 0 2 0 12 12
99 100 14 15 1 4 29 43 15 15
Lucky 0 0 100 100
James 2 0 100 100
Jerry 2 4 100 100
Cristofor 0 2 100 100
Chris 2 3 100 100
Miclaus 2 1 100 100

Я хочу прочитать все данные в нескольких структурах.Это мой код: я прочитал первые 6 строк и хочу прочитать следующие 6 и поместить каждое слово в переменные.Я не знаю, как читать эту строку.

void citireDate(){
char c;
FILE *f;
f = fopen("nume.in","r");
fscanf(f,"%d", &R);
fscanf(f,"%d", &P);
for(int i=1;i <= 2*R+1 ; i++)
    for(int j=1;j <= 2*R+1; j++){
        fscanf(f,"%d",&ghetar[i][j].inaltime);
        fscanf(f,"%d",&ghetar[i][j].manusi);
}

for(int i=1;i<=6;i++){

//here i have to read that string
    fscanf(f,"%d",&spiridusi[i].x);
    fscanf(f,"%d",&spiridusi[i].y);
    fscanf(f,"%d",&spiridusi[i].hp);
    fscanf(f,"%d",&spiridusi[i].stamina);

}


fclose(f);
}

Как я могу прочитать эту строку?

1 Ответ

0 голосов
/ 28 декабря 2018

просто прочитайте все строки за один fscanf(f, "%s %d %d %d %d\n", ...);

for(int i=1;i<=6;i++) {
  fscanf(f, "%s %d %d %d %d\n",
         &spiridusi[i].?????,
         &spiridusi[i].x,
         &spiridusi[i].y,
         &spiridusi[i].hp,
         &spiridusi[i].stamina);
}

Или, конечно, я предполагаю, что в строке нет пробела перед 4 целыми числами

Странно, что первые индексывсегда 1, я думаю, что они должны быть 0 во всех для (кроме случаев, когда у вас есть веская причина начать с 1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...