Jump to content
Sign in to follow this  
pabkil

Dúvidas sobre leitura de arquivos

Recommended Posts

pabkil

Inicialmente boa noite! Bom meu problema é o seguinte, preciso ler um arquivo de texto que está no seguinte formato:

9101422;Abilio Gambim Parada

9200644;Aira Muane Dutra Lippert

10102111;Alan Brochier

9201505;Alan Lucas Romagnoli Becerra

8102307;Alan Schlindvein de Araujo

9200622;Albert Timm

8201651;Alex Bertei

Tenho de colocar os números em um vetor e os nomes em outro, para a seguir organiza-los via bubble e merge sort. Alguém tem alguma ideia de como posso implementar isso?

Pensei inicialmente em utilizar o fscanf para leitura com parada em EOF mas ele lê além dos números.

Bom, desde já agradeço pela ajuda!

Share this post


Link to post
Share on other sites
pikax

Boa noite!

exprimenta

#include<stdio.h>

int main()
{
    FILE *fich;
    int num;
    char nome[55];
    fich=fopen("a.txt","r");


    fscanf(fich,"%d;%[^\n]",&num,nome);
    printf("%d:%s",num,lol);
}

espero ter ajudado


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
pmg

O feof() não "faz" o que tu pensas que faz.

Suponho que pensas que o feof() te indica, a dado momento, se o ficheiro está no fim. Pois não é isso que ele faz.

O que o feof() "faz" é dizer-te, depois de uma falha de leitura, se a falha de leitura se deveu ao ficheiro ter chegado ao fim.

Uso correcto:

int ch;
do {
    ch = getchar();
    if (ch != EOF) {
        /* processar ch */
    }
} while (ch != EOF);
if (feof(stdin)) /* a leitura acabou porque o input chegou ao fim */;
if (ferror(stdin)) /* a leitura acabou porque houve um erro no input (falha de disco, falha de rede, ...) */;

Uso incorrecto:

while (!feof(stdin)) {
    ch = getchar();
    /* processar ch */
}


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.