Armazenar valores de um arquivo em um vetor de inteiros (c++)

1. Armazenar valores de um arquivo em um vetor de inteiros (c++)

Pedro Victor
Nerdiarretado

(usa Arch Linux)

Enviado em 30/07/2019 - 22:15h

Saudações amigos (as)!
Estou com um pequeno empecilhinho na finalização desse programa, ele irá ler um arquivo que contem uma lista de vários números e transformar em vetor de inteiros, porém, não sei como armazenar isso.

#include <iostream>
#include <ostream>
#include <fstream>
#include <istream>
#include <vector>

/*
Faça um programa que lê o arquivo criado acima para um vetor de inteiros.
A seguir, exiba o menor e o maior elemento do vetor e a média dos elementos.
Use funções para calcular esses valores.
*/

int main () {
std::vector<int> numero;
std::string line;
std::ifstream text("textoNovo.txt");
int contador = 0;
if (text.is_open()) {
while (text.good()){
getline(text, line);
// std::cout << numero.size() << std::endl;
// numero.push_back(line);
numero.insert(line);
}

} else{
std::cout << "Erro ao abrir o arquivo! " << std::endl;
}



  


2. Re: Armazenar valores de um arquivo em um vetor de inteiros (c++)

Paulo
paulo1205

(usa Ubuntu)

Enviado em 31/07/2019 - 01:00h

Converta line para inteiro. Um jeito de fazer é com std::stoi().

Mas seu programa tem outros problemas. O mais óbvio é a tentativa de usar std::vector<int>::insert() com apenas um argumento.

Um segundo problema é que o teste de std::ifstream::good() antes de std::getline() é insuficiente para garantir que esta última vai funcionar. Você não tem como evitar testar se std::getline() foi bem sucedida, e esse teste torna redundante o uso de std::ifstream::good().
  while(std::getline(file, line)){
// Leitura bem sucedida: pode usar o valor de ‘line’.
...
}



... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts