käsiteltävä txt tiedosto sisältää lukuja, joiden välissä on tabulaattori ja välilyönti. luvut ovat väliltä 0-1000.
Tämän tiedoston data pitäisi saada talteen int tyyppiseen taulukkooon.
Ohjelma lukee nyt tiedoston char tyyppiseen puskuriin.
Miten pelkät luvut saadaan int taulukkoon???
#include <fstream>
std::ifstream in;
in.open("file.txt");
if(!(in.is_open())) {
printf("failed to open file \n");
return 1;
}
int i = 0;
char buf[10000];
int table[10000] = {0};
while(!(in.eof())) {
in.getline(buf, 10000);
for(i = 0; i < 10000; i++) {
}
}(Mod. edit. Ole hyvä ja käytä kooditageja.)
Vastaus: lue tiedostosta luvut 'sanoina' ja muunna sitä mukaa kun niitä tulee. Eli toisin sanoen (half-pseudo):
using namespace std;
//...
ifstream in("file.txt");
int c = 0, luku, luvut[1000];
while(!in.eof()){
in >> luku;
luvut[c++] = luku;
}Virhetarkistukset yms. jätän sinun huoleksesi.
Tee tällainen funktio ja kutsu sitä:
#include <vector>
#include <istream>
#include <algorithm>
#include <iterator>
using namespace std;
vector<int> readall(istream &in)
{
vector<int> v;
copy(istream_iterator<int>(in), istream_iterator<int>(), back_inserter(v));
return v;
}Aihe on jo aika vanha, joten et voi enää vastata siihen.