Ho bisogno di leggere da un file .data
o .txt
contenente un nuovo numero float
su ogni riga in un vettore.Come leggere un file in vettoriale in C++?
Ho cercato in lungo e in largo e applicati numerosi metodi diversi, ma ogni volta che ottenere lo stesso risultato, di un Main.size()
di 0
e un errore che dice "Vector Subscript out of Range"
, così evidentemente il vettore non è solo leggendo nulla nel file.
Nota: il file si trova entrambi nella cartella e anche nel progetto VS.
Comunque, ecco il mio codice:
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
using namespace std;
int main() {
vector<double> Main;
int count;
string lineData;
double tmp;
ifstream myfile ("test.data", ios::in);
double number;
myfile >> count;
for(int i = 0; i < count; i++) {
myfile >> tmp;
Main.push_back(tmp);
cout << count;
}
cout << "Numbers:\n";
cout << Main.size();
for (int i=0; i=((Main.size())-1); i++) {
cout << Main[i] << '\n';
}
cin.get();
return 0;
}
Il risultato che ottiene è sempre semplice:
Numbers:
0
Controllare il risultato di tutte le operazioni di I/O. – hmjd
Che aspetto ha il tuo 'test.data'? – us2012
si prega di dare un'occhiata in de/-serialization. di solito dovresti creare una classe vettoriale e una classe di raccolta vettoriale (in grado di gestire il file di input txt). Un buon inizio è la risposta a questo: http://stackoverflow.com/questions/11415850/c-how-serialize-deserialize-objects-without-any-library – Najzero