1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida em C

Discussão em 'Programação' iniciada por Razer3G, 9 de Janeiro de 2013. (Respostas: 1; Visualizações: 1066)

  1. Razer3G

    Razer3G Suspenso

    Boa noite! Tenho uma dúvida num exercício, em C, e queria pedir a vossa ajuda.


    #include <stdio.h>
    #include <string.h>

    main ()
    {
    int x;
    char pessoa[20];
    FILE *fp;

    fp = fopen ("nomes_idade.txt","r");

    while(fgets(pessoa,20,fp)>0)
    {
    printf ("%s", pessoa);
    }

    fclose (fp);
    }

    O ficheiro "nomes_idade.txt" contém o seguinte:
    Joao Maria
    22
    Antonio Silva
    25
    Maria Ribeiro Costa
    23
    (...)

    Com este código consigo imprimir tudo o que está no ficheiro de texto, mas e se eu quiser imprimir apenas as idades? Ou seja, se eu quiser usar apenas as linhas pares do ficheiro, neste caso imprimi-las?
    Já tentei de várias maneiras e não consegui, agradecia a vossa ajuda.

    Muito obrigado desde já.
     
  2. Se queres imprimir só as linhas pares/impares podes utilizar o "%" (resto da divisão).
    No teu caso, para imprimir apenas as idades, queres imprimir as linhas ímpares 1,3 e 5, ou seja, (i%2 != 0)

    Código:
    char pessoa[[COLOR=#ff0000]21[/COLOR]];
    (...)
    int i=0;
    [COLOR=#EDEDED]while(fgets(pessoa,[/COLOR][COLOR=#ff0000]21[/COLOR][COLOR=#EDEDED],fp)>0)[/COLOR]
    [COLOR=#EDEDED]{[/COLOR]
    if(i%2!=0) printf ("%s", pessoa);[COLOR=#EDEDED]
    [/COLOR]i++;
    [COLOR=#EDEDED]}[/COLOR]
    Tens de alterar o tamanho para 21 para teres espaço para o '\n' e o '\0'.
     

Partilhar esta Página