Jag har lite problem med att läsa från en fil till en två dimensionell array. Jag har gjort detta lilla program: 1. Använd mellanslag istället för punkt. Annars tolkar programmet det som ett decimaltecken. Tack för svaren!Läsa från fil till 2D-array.
#include <fstream.h>
int main()
{
int array [5] [5] =
{
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5}
};
ofstream save_file("save_file.txt");
for (int i=0; i<5; i++)
for (int j=0; j<5; j++)
{
save_file << array[j][i] <<".";
}
save_file.close();
return 0;
}
När man har kört programmet läggs detta i filen save.txt:
1.1.1.1.1.2.2.2.2.2.3.3.3.3.3.4.4.4.4.4.5.5.5.5.5.
Nu tänkte jag göra ett nytt program och läsa in dessa nummer så att de hamnar på samma position som i programmet ovan.
Det blir problem med det eftersom jag inte vet hur man läser in tal, bara text.
Men även om jag skulle veta hur man läste in tal är jag inte säker på hur man skulle kunna göra ändå. Väldigt tacksam för hjälp!
mvh /PeterSv: Läsa från fil till 2D-array.
2. Sedan beror det på hur du vill göra. Skall det alltid vara en 5x5 matris?
I så fall kan du använda dig av ifstream
typ
ifstream f("filnamn");
int a;
f >> a;
fast med arrayer.
Du bör för övrigt använda dig av vector istället för C-arrayer.
/Niklas JanssonSv: Läsa från fil till 2D-array.
Tror nog att det blir lättare om du skriver:
array[i][j]
ist för
array[j][i]
/PatrikSv: Läsa från fil till 2D-array.
Jag trodde inte att det skulle fungera med >> eftersom jag trodde den bara läste in text och inte tal, men jag har provat nu och det fungerade bra!
Men jag förstår inte alls hur man skulle kunna använda vector istället. Hur kan man få en vector till en 2-dimensionell array? Det jag vill göra senare i mitt program är att kunna skriva array[4][4] = 5; ungefär. Om man har en vector måste man inte söka igenom hela den och titta en massa olika saker? (inte så duktig på vectors)
Det vore väldigt bra om du ville ge ett exempel Niklas. Det kanske inte går att använda en vector i detta fall?