Problemet med filer er at styre hvor du er i filen.
Når du åbner din fil, så bliver der sat en pointer til starten af filen.
Og det nok for lidt mere øvede (ikke ment fornærmende) at manipulere den filpointer selv.
Så jeg ville da anbefale dig at gennemløbe hele din fil, lægge hver linie i et string array og så bare manipulere dit string array istedet.
Her er et eksempel:
<pre>
#include <iostream>
#include <string>
#include <fstream>
#include <stdlib>
using namespace std;
const int MAXLINIER = 200; //Max linier sat til 200
int main(int argc, char* argv[])
{
string ord[MAXLINIER];
fstream infile;
infile.open("helst.txt");
if(infile.fail()){
cout << "Fejl i åbning af fil, programmet lukkes\\n";
exit(1);
}
int taeller=0;
string readahead;
infile >> readahead;
ord[taeller]= readahead;
while((!infile.eof()) && (taeller < MAXLINIER-1)){
taeller++;
infile >> readahead;
ord[taeller]= readahead;
}
infile.close();
cout << "Linie 3 = " << ord[2]; //arrays startet i 0 derfor linie 3 = ord[2]
system("PAUSE");
return 0;
}
</pre>
Jeg har sat MAXLINIER = 200; dvs arrayet kan holde 200 strenge (fra 0 til 199).
Hvis du har flere linier ændrer du det bare der.
Håber det kan bruges.
//Agge
[Redigeret d. 19/11-03 16:00:42 af Agge Kempff]
Nu ved jeg ikke som meget om læsning og skrivning til og fra filer (endnu), men kunne man ikke bare lave en string variabel for hver linie og så via en cin command åbne den string/linie som man vil læse?
Det vil måske ikke være så smart hvis der f.eks. er 500 linier, men hvis der kun er et par stykker ville det da måske være den nemmeste?