Ich habe eine * .txt-Dateien mit Ganzzahlen, eine auf jeder Zeile. So würde die Datei so etwas wie aussehenLesen von Zahlen aus einer * .txt-Datei in C++ mit fstream
103123
324
4235345
23423
235346
2343455
234
2
2432
Ich versuche, diese Werte aus einer Datei Zeile für Zeile zu lesen, damit ich sie in einem Array setzen kann. Unten ist ein Code, den ich schrieb, um das zu erreichen:
Die Datei wird geöffnet, da das Bool 'B' True zurückgibt. Die While-Schleife wird jedoch in einem Durchgang beendet. und das Array ist leer. Ich schaute Online auf und versuchte, andere Dinge wie die Code hier gegeben bei
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int nArray[100000];
int i = 0;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream in("C:\Users\Chinmay\Documents\Array.txt");
bool b = in.is_open();
if(!in) {
cout << "Cannot open input file.\n";
return 1;
}
char str[255];
while(in) {
in.getline(str, 255); // delim defaults to '\n'
if(in) cout << str << endl;
}
in.close();
return 0;
}
Dies sofort auch zurückgibt. Die Datei wird geöffnet, aber es werden keine Daten gelesen. Die Datei ist nicht leer und enthält die Daten. Kann mir jemand erklären, wo ich falsch liege? Ich verwende die Betaversion von Visual Studio 2011.
Warum Sie nicht verwenden 'int tmp; cin >> tmp' und speichern Sie das Ergebnis in einer 'std :: vector' oder' std :: list'? –
'std :: vector' ist dein Freund, in der Tat. 'int nArray [100000];' könnte sehr speicherverschwendend sein. –
Ich stimme der Verwendung von std :: vector zu, anstatt das Array auf dem Stapel zuzuweisen. Dies war nur ein erster Entwurf und ich habe nur versucht, den Teil "Lesen aus Datei" richtig zu machen. Ich werde auch versuchen mit dem, was Niklas B. vorgeschlagen hat.Immer noch neugierig, warum die fstream und fstream.getline() nicht funktioniert haben. Vielen Dank. –