возникла проблема при попытке печати определенных строк файла .txt.
Содержимое файла:
1ºAmsterdao
1.1 PDI
Casa de Anne Frank
-Descricao: Museu biografico localizado na cidade de Amsterdao, capital dos Paises Baixos.
-Horario de funcionamento: Abertura*7h Fecho*19h
1.2 PDI
Museu Van Gogh
-Descricao: Museu em Amsterdao, nos Paises Baixos.
-Horario de funcionamento: Abertura*8h Fecho*18h
1.3 PDI
Museu da Heineken
-Descricao: Visita interativa pela historia da conhecida marca numa antiga cervejaria que termina numa sala de degustaçao.
-Horario de funcionamento: Abertura*10h Fecho*19
2ºBangkok
2.1 PDI
Grande Palacio de Bangkok
-Descricao: Conjunto de edificios em Bangkok, Tailandia, que serviu como residencia oficial do rei de Tailandia.
-Horario de funcionamento: Abertura*8h Fecho*15h
.,.
И он поднимается до 20º.Я пытаюсь напечатать первую букву слова в каждой строке в формате «2ºBangkok».Проблема в том, что файл может быть изменен и может быть добавлено больше «PDI», таких как 1.4, 1.5 и т. Д., Поэтому нет никакого способа узнать, сколько строк между ними.
То, как япопытаться обойти, это получить каждый символ строки, использовать atoi (), а затем сравнить его с номером строки, которую я напечатал ранее, поэтому он будет печататься только тогда, когда число больше.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 500
int main ()
{
FILE *fp = fopen("save_projeto.txt", "r");
char s[MAX_LENGTH];
int numero;
int numero_2;
while (!feof(fp)) {
fscanf(fp, "%d", &numero);
printf("%d", numero);
fgets(s, MAX_LENGTH, fp);
numero_2 = s[0];
printf("%c\n", s[1]);
while(numero_2 != (numero + 1)){
fgets(s, MAX_LENGTH, fp);
numero_2 = s[0];
atoi(numero_2);
}
}
fclose(fp);
}
Вывод, который я ожидал, был "1A \ n 2B \ n 3C ...", и вместо этого я получаю вывод "1A \ n".