Ich möchte eine Eingabedatei in C++ lesen, deren Struktur (oder das Fehlen einer solchen) in etwa aus einer Reihe von Zeilen mit Text = Zahl , wie zum Beispiel
input1 = 10
input2 = 4
set1 = 1.2
set2 = 1.e3
Ich möchte die Nummer aus der Zeile nehmen und den Rest wegwerfen. Zahlen können entweder ganze Zahlen oder Doppelzahlen sein, aber ich weiß, wann sie das eine oder das andere sind.
Ich würde es auch gerne lesen, wie
input1 = 10
input2=4
set1 =1.2
set2= 1.e3
um für den Benutzer robuster zu sein. Ich denke, das bedeutet, dass sie nicht in formatierter Form rot sein sollte.
Wie auch immer, gibt es eine intelligente Möglichkeit, das zu tun?
Ich habe bereits das Folgende versucht, aber mit minimalen Kenntnissen über das, was ich getan habe, so dass das Ergebnis wie erwartet war... kein Erfolg.
#include <stdio.h>
#include <stdlib.h>
#include <float.h>
#include <math.h>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <boost/lexical_cast.hpp>
#include <string>
using namespace std;
using namespace boost;
int main(){
string tmp;
char temp[100];
int i,j,k;
ifstream InFile("input.dat");
//strtol
InFile.getline(temp,100);
k=strtol(temp,0,10);
cout << k << endl;
//lexical_cast
InFile.getline(temp,100);
j = lexical_cast<int>(temp);
cout << j << endl;
//Direct read
InFile >> tmp >> i;
cout << i << endl;
return 0;
}