Ir ao conteúdo
  • Cadastre-se

C Exercício para incluir dados em arquivo / código


Ir à solução Resolvido por devair1010,

Posts recomendados

Este é o enunciado do exercício:

Citação

Gravar em um arquivo o nome de 10 pessoas e suas idades. Ler o arquivo e imprimir os nomes e as idades somente das pessoas maiores de idades.

 

O código que criei foi este, porém não está gravando no arquivo os dados...

#include <iostream>
#include <fstream>
using namespace std;

int main() {
  int idade=0, i=0;
  string nome;

  ofstream grava1 ("dados.txt");

  for(i=1;i<=10;i++){
    cout<<"insira o nome da pessoa"<<endl;
    cin>>nome;
    cout<<"insira a idade da pessoa"<<endl;
    cin>>idade;
    }
  
  for(i=1;i<=10;i++){
    cin>>idade;
    if (idade>=18){    
    grava1<<idade<<endl;
    }}
  grava1.close();

  ifstream ler ("dados.txt");
  int idade1=0;
  string nome1;

  for(i=1;i<=10;i++){
    ler>>idade1;
    ler>>nome1;
  }
  ler.close();

return 0;  
}

 

Quem puder me ajudar, agradeço muito!!

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@elisa_schneider   você precisar criar e abrir o arquivo antes de escrever nele 

#define _WIN32_WINNT 0x600
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <iostream>
#include <fstream>
using namespace std;
int prototipo(int , int , int* );
int main()
{
  HANDLE _h = GetStdHandle(STD_OUTPUT_HANDLE);
  SetConsoleTextAttribute( _h , 15 + (12 << 4 ) );
  int      idade  =  0;
  int      i      =  0;
  int      idade1 =  0;
  string   nome1  = "";
  string   nome   = "";
  ofstream grava1     ;/// objeto arquivo
  grava1.open("dados.txt",std::ios_base::app);
                       /// abre o arquivo grava1
  for( i=0; i<2; i++ ) /// testar com apenas dois
  {
    cout   << "insira o nome da pessoa ";
    cin    >> nome;
    grava1 << nome  << endl; /// já grava
    cout   << "insira a idade da pessoa ";
    cin    >> idade;
    grava1 << idade << "\n" << endl; /// p/ não perder o conteUdo da variaveL
  }
  grava1.close();
  ifstream ler ( "dados.txt" );

  for( i=0; i<2; i++ )
  {
    ler  >>  nome1;
    cout << "Nome ---: " << nome1 << endl;
    ler  >> idade1;
    cout << "Idade --: " << idade1 << "\n" << endl;
  }
  ler.close();
  cout << "\n\n" << endl;
  system("start dados.txt");
  SetConsoleTextAttribute( _h , 7 + ( 0 << 4 ) );
  printf("\n\n\n");
  return 0;
}
int prototipo(int a , int b , int* c )
{
  return 0;
}

 

https://www.clubedohardware.com.br/forums/topic/1562509-como-abrir-um-arquivo-e-mostrar-na-tela-em-c/

Link para o comentário
Compartilhar em outros sites

20 minutos atrás, devair1010 disse:

@elisa_schneider   você precisar criar e abrir o arquivo antes de escrever nele 

#define _WIN32_WINNT 0x600
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <iostream>
#include <fstream>
using namespace std;
int prototipo(int , int , int* );
int main()
{
  HANDLE _h = GetStdHandle(STD_OUTPUT_HANDLE);
  SetConsoleTextAttribute( _h , 15 + (12 << 4 ) );
  int      idade  =  0;
  int      i      =  0;
  int      idade1 =  0;
  string   nome1  = "";
  string   nome   = "";
  ofstream grava1     ;/// objeto arquivo
  grava1.open("dados.txt",std::ios_base::app);
                       /// abre o arquivo grava1
  for( i=0; i<2; i++ ) /// testar com apenas dois
  {
    cout   << "insira o nome da pessoa ";
    cin    >> nome;
    grava1 << nome  << endl; /// já grava
    cout   << "insira a idade da pessoa ";
    cin    >> idade;
    grava1 << idade << "\n" << endl; /// p/ não perder o conteUdo da variaveL
  }
  grava1.close();
  ifstream ler ( "dados.txt" );

  for( i=0; i<2; i++ )
  {
    ler  >>  nome1;
    cout << "Nome ---: " << nome1 << endl;
    ler  >> idade1;
    cout << "Idade --: " << idade1 << "\n" << endl;
  }
  ler.close();
  cout << "\n\n" << endl;
  system("start dados.txt");
  SetConsoleTextAttribute( _h , 7 + ( 0 << 4 ) );
  printf("\n\n\n");
  return 0;
}
int prototipo(int a , int b , int* c )
{
  return 0;
}

 

https://www.clubedohardware.com.br/forums/topic/1562509-como-abrir-um-arquivo-e-mostrar-na-tela-em-c/

 

Oi, entendi!
No caso, eu preciso imprimir apenas os nomes das pessoas com mais de 18 anos. Mas se eu incluir o IF, ele não imprime...

  for( i=0; i<2; i++ )
  { if(idade>=18){
    ler  >>  nome1;
    cout << "Nome ---: " << nome1 << endl;
    ler  >> idade1;
    cout << "Idade --: " << idade1 << "\n" << endl;
  }}

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!