c - 打印特定行

标签 c file

尝试打印 .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”。

最佳答案

while (true) {
        if (!fgets(str, sizeof(str), fp))
                break;
        if (sscanf(str, "%d°%c", &n, &c) != 2)
                continue;
        if (n <= prev)
                continue;
        printf("%i%c\n", n, c);
        prev = n;
}

关于c - 打印特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56261893/

相关文章:

c - 监听两个不同端口的 TCP 服务器

c - c 中 3x3 矩阵转置的函数

javascript - 文件选择/文件 API - 将文件发送到嵌入式 PDFObject

Python33 - 使用 BaseHTTPRequestHandler 提高服务器安全性

c - 让多个线程同时读取文件的最佳方法是什么?

file - ruby 中的临时图像文件

c - SQLite3 和限制结果的数量

c - zlib 中 deflate() 或 inflate() 的最小/最大输入大小是多少?

Ruby IO - 间接文件输入/输出

c - 在 C 中的结构中初始化 const 数组?