pabkil Posted April 2, 2012 Report Share Posted April 2, 2012 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! Link to comment Share on other sites More sharing options...
pikax Posted April 2, 2012 Report Share Posted April 2, 2012 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." Link to comment Share on other sites More sharing options...
pmg Posted April 2, 2012 Report Share Posted April 2, 2012 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! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now