Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

wie kann ich aus einer Text-Datei Strings einlesen?

ist es möglich beim Einlesen die Zeilenzahl anzugeben?

hab es mit getline probiert komm da aber nicht ganz weiter

klar ist: getline braucht 3 paramter

getline (par1,par2,par3)

der erste und der letzte parameter sind mir nicht ganz klar

der mittlere steht für die variable in der der string geschrieben werden soll.

Gruß

Johannes

Geschrieben

Hi,

wie wäre es denn hiermit...


char zeile [81] = " ";

...

ifstream fin ("c:\\datei.txt", ios::in); //öffnet die Datei zum einlesen.

...

fin.getline>>zeile  //vielleicht auch fgets verwenden

...

fout.close();

...

//Habe hier nicht so sehr auf die Syntax geachtet

Die Stichworte sollten eigentlich reichen. Du musst das natürlich noch Deinen Anforderungen anpassen. Wenn Du noch mehr Informationen brauchst, dann schau mal in den vergangen Threads. Das Thema wurde hier schon ein paar Mal behandelt... ;)

Grüsse!

DocMabuse

Geschrieben

Sorry, aber ich komm noch nicht ganz klar.

Hab es bissher so probiert.

Das scheint auch ganz ok zu sein, aber

void adresse::einlesen()

{

char index[50];

fstream dat_ein;

dat_ein.open("C:\\test.txt",ios::in);

dat_ein.getline (index,sizeoff,);

dat_ein.close;

}

so, die datei wird zum lesen geöffnet, und wird auch wieder geschlossen, aber mit dem einlesen gibt es noch probs.

für was stehen dann aber die anderen 2 paramter von getline?

will nicht nerven, bin aber leider blutiger anfänger

Gruß

Johannes

Geschrieben

Ok, es müsste ungefähr so aussehen...


...

   char zeile [81] = " ";

   ifstream fin ("c:\\datei.txt", ios::in);

   if (fin.good())

   {

      while (!fin.eof())

      {

         fin.getline(zeile,80);

         cout<<zeile<<endl;

      }

      fin.close();

   }

...

"getline" benötigt zwei Parameter:

a) char* s

B) long n

Im Klartext heißt dass, er braucht einen String, in den der eingelesene Inhalt gespeichert wird. Die Zahl gibt einfach an, wieviele Zeichen gelesen werden sollen.

Ich würde auch darauf achten, dass die Datei zum Einlesen mit "ifstream" geöffnet wird. Es geht aber auch einfach mit "fstream". Ist nur so eine Angewohnheit von mir.

Grüsse!

DocMabuse

Geschrieben

THX for the Help !!!!

Hab es folgendermaßen hinbekommen.

void adresse ::lesen_datei()

{

cout << "Ihre Daten werden nun eingelesen" << endl;

ifstream dat_ein;

dat_ein.open(dateiname.c_str(), ios::in);

if (!dat_ein)

{

cout << " Sorry, die Datei konnte nicht geöffnet werden" << endl;

}

char zeichen;

while (!dat_ein.eof())

{

dat_ein.get(zeichen);

cout << zeichen;

}

}

Muss halt mal schauen wie ich des mach wenn ich nur bestimmte teile der datei einlesen will.

entweder mit [;] oder zeilenweise.

Gruß

Johannes

Geschrieben

Kannsts auch mal so versuchen (Auszug aus der MSDN) :

//fopen, _wfopen

//Open a file.

FILE *fopen( const char *filename, const char *mode );

//filename = Filename

//mode = Type of access permitted z.b "r" für reading

//////////////////////////////////////////////////////////////////

//fread

//Reads data from a stream.

size_t fread( void *buffer, size_t size, size_t count, FILE *stream );

// size in bytes

// count = Maximum number of items to be read

// stram = Pointer to FILE structure

Wichtig: Am ende fclose(stream) nicht vergessen! !

Gruß Archer

Geschrieben
Original geschrieben von -= *["]Mr.Coffee["]* =-

...

Wie mach ich es aber blos das er bis zu einer gewissen stelle aus der datei liest? und später bei der stelle wieder anfängt?

...

Du könntest mal mit tellg() und seekg() arbeiten. Soweit ich weiß kann man damit den Zeiger auf bestimmte Stellen in der Datei setzen. tellg() liefert Dir, glaube ich, die Länge der Datei in Byte. Kannst das ja mal in Deinem Compiler nachschauen. Ob das so klappt bleibt abzuwarten.

Grüsse!

DocMabuse

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...