Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
stardark17

C Analisar as linhas de um arquivo

Recommended Posts

Pessoal, preciso de um help para analisar as linhas de um arquivo.
O problema é o seguinte, eu tenho um arquivo com uma coluna e algumas linhas, fiz a leitura do arquivo. Agora eu preciso fazer uma analise de linha por linha. Por exemplo:
Eu quero os números maiores que 4, tenho os seguintes números:
5
2
1
8
Linha 1 = maior
Linha 2 = menor
Linha 3 = menor
...
Eu pensei em fazer um FOR pra varrer a coluna, e depois IF pra comprar. Mas não sei como colocar isso por se tratar de um arquivo.
Espero ter sido claro na explicação.
Obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

manda o que tenha feito

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <stdio.h>
#include <stdlib.h>



int main(int argc, char *argv[]) {
	FILE *file;
	file = fopen ("result.txt", "r");
	int n1;
	fscanf (file, "%d\n",&n1);
	printf ("%d\n",n1);
	while (fscanf(file, "%d\n",&n1)!=EOF )
			printf ("%d\n",n1);;
/* if (n1>4) 
 printf ("Maior",n1);
 else 
 printf ("Menor",n1);
 */
	fclose(file);
	return 0;
}

 

Editado por stardark17
Sugestão dos moderadores

Compartilhar este post


Link para o post
Compartilhar em outros sites

@stardark17, por favor, poste o texto do código.

 

Para o código ficar organizado, clique no botão <> e coloque o texto.

 

No aguardo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

prove com esse:
 

#include <stdio.h>
#include <stdlib.h>



int main ( int argc, char *argv[] ) {
    FILE *file;
    file = fopen ( "result.txt", "r" );
    int n1;
    
    int i = 0;
    
    while ( fscanf ( file, "%d\n", &n1 ) != EOF ) {
        i++;
        printf ( "linha %d\n", i);;
        
        if ( n1 <= 4 )
            printf ( "Menor ou igual", n1 );
        else
            printf ( "Maior", n1 );
    }
    
    fclose ( file );
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu amigão, deu certo!

E eu conseguiria ler dessa forma de 2 em 2 ou 3 em 3, por exemplo?
4
7
2
9
2
3
Lendo de 3 em 3:
Dos 3 primeiros, apenas 1 é menor do que 4. Dos 3 segundos, 2 são menores do que quatro...
Eu tentei dessa forma, seguindo a sua dica:
 

	FILE *file;
    file = fopen ( "result.txt", "r" );
    int n1,i,n,cont;
    cont = 0;
     i = 0;
    
    while ( fscanf ( file, "%d\n", &n1 ) != EOF ) {

		if (n1<4){
		cont = cont+1;
	}	
	}
  printf ("%d numeros de menores que 4\n", cont);

  fclose ( file );

porém esse lê de 1 em 1 apenas e me da o resultado total contado de todas as linhas. 
Eu tentei mudar o i para :

i+=3

Mas ele lé um número a cada 3, e não de 3 em 3.

Alguém poderia me ajudar novamente?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×