Hej! Här är ett sätt Hej Adrian! Förstår mig inte på din kod. Kanske den gör det du vill men jag är tveksam.Inläsning från en fil
Jag undrar om någon vet hur man går till väga för att läsa in från en fil, till en array, och få det som heltal?
/JanSv: Inläsning från en fil
Fungerar om filen består av heltal separerade med något som fungerar som blanktecken (t.ex. blank, nyrad)
<code=c++>
std::vector<int> readIntsFromFile(const std::string& filename) {
std::vector<int> array;
std::ifstream file(filename.c_str());
std::for_each(std::istream_iterator<int>(file), std::istream_iterator<int>(), std::back_inserter(array));
return array;
}
</code>
Allvarligt talat så behövs det mer information om hur filen ser ut för att kunna ge ett bra svar.Sv: Inläsning från en fil
Jag hade tänkte mig något sådant. Vad tror du är det omöjligt?
/Jan
high.txt ser ut som:
1 2 3
4 5 6
7 8 9
# include <fstream>
# include <cstdlib>
#include <iostream>
#include <cstring>
#include <iomanip>
#include <string>
using namespace std;
int main ()
{
int arr[100]={0}, i=0;
fstream lasfil; //lasfil ska läsas.
lasfil.open("high.txt", ios ::in|ios:: binary);
ifstream f1("high.txt");
if (!lasfil )
{
cout<< "Filen kunde inte öppnas"<<endl;
}
else
{
while ( lasfil.peek () !=EOF) //Läser in så länge inte eof (end of file).
{
lasfil.read (reinterpret_cast< char * > (&arr[i]), sizeof(int));
i++;
}
}Sv:Inläsning från en fil
Min kod ovan borde fungera för den fil du har.
Om du vill ha lite längre kod kan du väl göra så här:
<code=c++>
std::vector<int> array;
while (!lasfil.eof())
int x;
lasfil >> x;
if (!lasfil.good())
break; // något gick galet
array.push_back(x);
}
</code>