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

Leitura de strings de um ficheiro

Discussão em 'Programação' iniciada por FTRock, 31 de Outubro de 2008. (Respostas: 1; Visualizações: 444)

  1. boas, tenho uma questao neste programa:
    Código:
    while(fgets(linha, 256, fp) != NULL){
        sscanf(linha,"%s", string1);
    
        switch(*string1){
        case 'N' : ncria=ncria+1;
                   break;
        case 'T' : ntrans=ntrans+1;
                   break;
        case 'R' : nrotg=nrotg+1;
                   break;
        case 'C' : nrotp=nrotp+1;
                   break;
        case 'S' : nred=nred+1;
                    break;
        case 'E' : ndest=ndest+1;
                   break;
        case 'P' : nfot=nfot+1;
                   break;
        }
    }
     
    bom eu tou a ler do ficheiro fp strings, no entanto no ficheiro fp se aparecer por exemplo 'P' e depois um enter ele conta o 'P' 2x.alguem sabe porquê?e como posso resolver isso?espero ter me explicado bem...
     
    Última edição pelo moderador: 31 de Outubro de 2008
  2. MadOnion

    MadOnion Folding Member

    O fgets conserva o '\n', pode ser daí, se o ficheiro tiver uma string por linha.

    Código:
    char *newline;
    while(fgets(linha, 256, fp) != NULL) {
        newline = strchr(linha, '\n');
        if (newline)
           *newline = '\0'
        sscanf(linha,"%s", string1);
    
        switch(*string1) { 
       case 'N' : ncria=ncria+1;
       break;
       case 'T' : ntrans=ntrans+1;
       break;
       case 'R' : nrotg=nrotg+1;
       break;
       case 'C' : nrotp=nrotp+1;
       break;
       case 'S' : nred=nred+1;
       break;
       case 'E' : ndest=ndest+1;
       break;
       case 'P' : nfot=nfot+1;
       break;
       }
    }
    
    Vê se resolve.
     

Partilhar esta Página