Я хотел бы прочитать входной файл на C ++, для которого структура (или ее отсутствие) будет выглядеть как последовательность строк с text = number , например,
input1 = 10
input2 = 4
set1 = 1.2
set2 = 1.e3
Я хочу вывести номер из строки, а остальные выбросить. Числа могут быть целыми или двойными, но я знаю, когда они одно или другое.
Я также хотел бы прочитать его, например,
input1 = 10
input2=4
set1 =1.2
set2= 1.e3
, чтобы быть более надежным для пользователя. Я думаю, это означает, что он не должен быть красным в отформатированном виде.
В любом случае, есть ли умный способ сделать это?
Я уже попробовал следующее, но с минимальным знанием того, что я делал, поэтому результат был, как и ожидалось ... безуспешно.
#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;
}