Ir ao conteúdo

Posts recomendados

Postado

O algoritmo é para ler o nome, o codigo e as notas de n alunos e gravar num txt, quando digito um nome normal por exemplo: julia, funciona 100%,mas quando digito(julia silva)

o loop sai e o programa termina. Se alguem souber o motivo por favor me diga.

 

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

int main() {
    FILE *text;
    char nome[30], aluno[30];
    float n1, n2, n3;
    int n, i, j, cod;
    
    printf("Informe um nome para seu arquivo texto. Ex: nome.txt\n");
    
    scanf("%s", nome);
    text = fopen(nome, "w");
    printf("Digite o numero de alunos:\n");
    scanf("%d", &n);
    
    for (i=0; i<n; i++){
        printf("Digite o nome do aluno\n");
        scanf("%s", aluno);
        printf("Digite o codigo do aluno:\n");
        scanf("%d", &cod);
        printf("Digite as 3 notas do aluno:\n");
        scanf("%f %f %f", &n1, &n2, &n3);
    
        fprintf(text, "%.1f %.1f %.1f cod:%d %s\n ", n1, n2, n3, cod, aluno);
        fprintf(text, "\n");
    }
    fclose(text);
    return 0;
    
    
}

Postado

O scanf com o %s pega uma string até que o usuário digite enter ou espaço, ou seja, o espaço no meio do nome finaliza a captura da string, mas não sei explicar o motivo pelo qual o loop é finalizado, tente usar esse trecho para receber o nome:

Citação

scanf("%*c%[^\n]", aluno);

esse %*c é para eliminar o lixo do buffer do teclado e o [^\n] é para que seja capturado tudo que o usuário digitar até o \n (enter).

 

Ou use simplesmente um gets:

Citação

fflush(stdin);

gets(aluno);

O Gets pega tudo que o usuário digitar até o enter, e o fflush é para limpar o buffer do teclado.

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!