nur zwei Zeilen aus einer .txt ausgeben

moin


Du solltest das nicht Zeichenweise machen, das ist viel zu umständlich.

Mach es lieber Zeilenweise:
Code:
#include <fstream.h>

int main()
{
	int zeile1 = 470;
	int zeile2 = 504;
        int maxzeilen = zeile2+1;

	char dummy[100];
    char buffer1[100];
	char buffer2[100];

	ifstream datei("c:\\zeilen.txt");

	for(int i=0; i<maxzeilen; i++)
	{
		if(i == (zeile1 - 1))
		{
			datei.getline(buffer1, 100, '\n');
			continue;
		}
		if(i == zeile2 - 1)
		{
			datei.getline(buffer2, 100, '\n');
			continue;
		}

		datei.getline(dummy, 100);
	}

	cout<< buffer1 << "\n";
	cout<< buffer2 << "\n";

	datei.close();

	return 0;
}

mfg
umbrasaxum
 
ich habe jetzt die datei geöffnet und über ch eingelesen

#include<iostream>
#include<fstream>
#include>string>
using namespace std;

int main()
{
// öffnen der datei

ifsteam einlesen("fva_ausgabe.txt");
if(!einlesen)
{
cout << "Datei konnte nicht geöffnet werden..."
}

char ch;
while (einlesen.get(ch))
{
cout << ch // zum überprüfen
}

und jetzt habe ich probleme wie sage ich lese aus ch 470 mal \n ein?
oder gibt es da eine bessere Lösung?
 
moin


Das liegt daran das man (eigentlich) bei Null anfängt zu Zählen, wenn du aber Zeile 470 haben willst wusste ich nciht ob die Zeile Nr. 470 oder die 470. Zeile haben willst.
Denn Zeile 470 ist eigentlich die 471. Zeile - 1 ist es dann wieder die Zeile die du haben willst.


mfg
umbrasaxum
 
moin


Wenns so nciht ganz stimmt, lass einfach das -1 weg, und guck ob es dann so ist wie du willst.


mfg
umbrasaxum
 
Abgesehen davon, daß getline intern wahrscheinlich auch nichts anderes macht als zeichenweise lesen, bis es auf ein \n trifft und davon, daß man immer auf die Puffergröße achten muß, ist die Lösung mit getline natürlich eleganter.
 
Zurück