Ir ao conteúdo
  • Cadastre-se
dosalpesbr

RESOLVIDO C++ Manipulação arquivos .txt

Recommended Posts

Pessoal, 

 

Estou trabalhando com manipulação de arquivos ".txt", estou tendo algumas dúvidas.

 

Objetivo: 

-Analisar o arquivo "entrada.txt" (já existente) que possui as seguintes 3 linhas:

 

Nome

Nota 1

Nota 2

 

-Caso a média das notas seja maior que 5, o Nome (que está na primeira linha do arquivo "entrada.txt") deve ser incluído em um novo arquivo, chamado "aprovado.txt".

 

-Caso a média das notas seja menor que 5, o Nome (que está na primeira linha do arquivo "entrada.txt") deve ser incluído em um novo arquivo, chamado "reprovado.txt".

 

 

 

Montei o seguinte código, mas estou tendo problemas para concluir.

Não estou conseguindo montar a condição if(media>=5) que irá incluir o Nome no arquivo "aprovado.txt" ou "reprovado.txt".

#include <iostream>#include <fstream>#include <string>#include <stdio>using namespace std;int main(){    int n1, n2, media;    string nome, nota1, nota2;            ifstream entrada;    entrada.open("entrada.txt");    ifstream aprovado;    aprovado.open("aprovado.txt");        ifstream reprovado;    reprovado.open("reprovado.txt");        if(!entrada.is_open()){                          cout << "Não foi possível abrir arquivo!\n";                          entrada.clear(); // reseta o objeto leitura                          }        if(!aprovado.is_open()){                          cout << "Não foi possível abrir arquivo!\n";                          aprovado.clear(); // reseta o objeto leitura                          }                              if(!reprovado.is_open()){                          cout << "Não foi possível abrir arquivo!\n";                          reprovado.clear(); // reseta o objeto leitura                          }        while(!entrada.eof()){                              getline(entrada,nome);                                                    getline(entrada,nota1);                          n1 = atoi(nota1.c_str());                                               getline(entrada,nota2);                          n2 = atoi(nota2.c_str());                                                    media = (n1+n2)/2;                                                    if(media>=5){                                       aprovado << nome;                                       }                                       else{                                            reprovado << nome;                                            }                                }    entrada.close();    aprovado.close();    reprovado.close();            system("pause");}

Poderiam me ajudar a concluir esse trabalho?

Obrigado pela atenção!  :D

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta tentando escrever em um arquivo que voce abriu para modo de leitura(ifstream),use std::ofstream..

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta tentando escrever em um arquivo que voce abriu para modo de leitura(ifstream),use std::ofstream..

 

Deu certo! Eu troquei de ifstream para ofstream, ficando assim:

 

ofstream aprovado;
ofstream reprovado;

 

 

 

Obrigado  :D

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





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

×