Как вы получаете целое число в текстовом файле, смешанном со строками и целыми числами?

#c

#c

Вопрос:

Я пытаюсь получить int значение из текстового файла. Это мой текущий алгоритм чтения файла:

 if (q) 
{
    while ((ch = fgetc(q)) != EOF)
    {
        if(ch == )
            printf("%c",ch);
    }
}
else
{
    printf("Failed to open the filen");
}
 

Внутри моего текстового файла:

 Occupant's Name: qwe qwe
Room Number: 1
Occupant's Category: Superior Double

Occupant's Name: h j
Room Number: 1
Occupant's Category: Superior Double

Occupant's Name: h j
Room Number: 1
Occupant's Category: Superior Double
 

Я хотел бы получить каждый номер комнаты.

Комментарии:

1. Посмотрите fscanf .

2. Я не вижу здесь попытки прочитать целое число.

3. спасибо, ребята .. уже понял

Ответ №1:

Рассмотрите возможность использования fgets для чтения каждой строки и sscanf для синтаксического анализа строки. Этот sscanf завершится ошибкой в строках, которые не начинаются с «Номер комнаты:».

 char line[100] = "";
int room = 0;
if (q) 
{
    while (( fgets ( line, sizeof line, q)))
    {
        if( ( sscanf ( line, "Room Number:%d", amp;room)) == 1) {
            printf("room number is %dn", room);
        }
    }
}
else
{
    printf("Failed to open the filen");
}