Odczytywanie danych z pliku

0

Napisałem sobie program który otwiera plik, sprawdza czy istnieje, teraz chciałbym aby wypisał mi zawartość danych z pliku na ekran. Znalazłem kilka możliwości jedna to

char dane[ 255 ];
stary.getline( dane, 255 );

Tylko przeczytałem że ta metoda wypisze mi jedna linijkę, a ja chciałbym cały kod, zresztą wklepałem i nie działa.
na innym forum znalazłem też coś takiego

ifstream plik("test.txt");
string tekst, line;
while(getline(plik, line))
tekst+= line + '\n';

O ilę dobrze rozumiem powyższy kod, to musiałbym znać ilość lini do wypisania, a takiej możliwości nie mam, muszę po prostu wypisac całą zawartość kodu. Proszę o wasze cenne uwagi.

oto cały kod.

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

int main () 
{
	fstream f_nowy;
	bool good();
	bool is_open();
	fstream stary;
	stary.open( "D:\stary.txt", ios::in | ios::out );
	if( stary.good() == true )
	{
		cout << "Uzyskano dostep do pliku!" << "\n";
		char dane[ 255 ];
		stary.getline( dane, 255 );

	}
	else cout << "Dostep do pliku zostal zabroniony!";

	//************************//
	char koniec;
	cin >> koniec;
	return 0;
}
0

Napisane na żywca tutaj na forum także nie traktować bardzo dosłownie:

ifstream in;
string temp,fileContent;
in.open("plik.txt",ios::binary);
in.seekg(0,ios::beg);
if(in.is_open())
{
   while(!in.eof())
   {
      plik>>temp;
      fileContent.append(temp);
      temp.clear();
   }
}

Podejrzewam, że użycie tempa w pętli while jest niepotrzebne ale to już sam sobie przetestuj.

0

Moża też tak:

std::ifstream fin("file.txt");
    char dane[255];

    while(!fin.eof())
    {
        fin.getline(dane,255);
        std::cout<<dane<<std::endl;
    }

    fin.close();
0

Dzięki:), w sumie miałem pod nosem ^^. Ale to nie koniec, chcę stworzyć program w którym użytkownik podczas uruchomienia programu, wpisuję nazwę pliku. Program otwiera dany plik.txt. i wypisuje jego zawartość na ekran.
Stworzyłem już program w którym użytkownik wpisuję nazwę:

#include <iostream>
#include <string>
#include<fstream>g
using namespace std;
int main()
{
	string nazwa;
	cin >> nazwa;

	fstream  f_nowy (nazwa.c_str(), ios::in);

	char znak;
	cin >>znak;
	return 0;
} [/code]
 [/code]

I Program wyświetlający zawartość pliku

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

int main ()
{
	ifstream plik("D:\stary.txt");
	string tekst, line;
	while(getline(plik, line))
	{
		tekst+= line + '\n';
		cout <<tekst;
	}
	char znak;
	cin >>znak;
	return 0;
}  [code]

Jaki trik zastosować aby połczyć oba patenty, Wbijanie szukanego programu i Wyświetlanie go na ekran:P

0

A może tak byłoby prościej?

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

int main()
{
    ifstream in("main.cpp"); //wstaw nazwe pliku
    string read;
    while(getline(in, read))
    cout << read << endl;
}
 
0
    string filename;
    std::cin>>filename;
    std::ifstream fin(filename);
    char dane[255];
 
    while(!fin.eof())
    {
        fin.getline(dane,255);
        std::cout<<dane<<std::endl;
    }
 
    fin.close();
0

Dzięki wielkie, jeszcze coś pozmieniałem i działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1