Leitura de strings de um ficheiro

FTRock

Membro
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:
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.
 
Back
Topo