• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Proszę o pomoc, program do otwierania pliku c++

Object Storage Arubacloud
0 głosów
390 wizyt
pytanie zadane 12 marca 2017 w Rozwój zawodowy, nauka, praca przez Barteck125 Obywatel (1,120 p.)

Witam, robie program. Użytkownik podaje nazwe pliku i tak jak w funkcji poniżej plik jest otwierany w jednej funkcji. Teraz tworze sobie drugą funkcje w której będę odczytywał z pliku do tablicy. I tutaj pytanie: Jak mam sie odwołać do tego "plik" zeby odczytać z niego w innej funkcji. Nie mam pojęcia jak to zrobić żeby w tej następnej funkcji która jest osobno, odczytać z pliku do zmiennych.  Proszę o pomoc. Pozdrawiam.

 

void OtworzPlik(string nazwaPliku) {
    ifstream plik;
 
    plik.open(nazwaPliku.c_str(), ios::in);            //otwarcie pliku do oczytu
    if (!plik.good()) {
        cout << " Nie znaleziono pliku" << endl;
    }
    else {
        cout << "Znaleziono plik" << endl;
 
}}

 

1 odpowiedź

+1 głos
odpowiedź 12 marca 2017 przez Sinnley Stary wyjadacz (12,810 p.)
wybrane 12 marca 2017 przez Barteck125
 
Najlepsza
Zmienna plikowa musisz przekazać w argumencie funkcji przez referencje. Twoja zmienna jest lokalna dla tej funkcji i w mainie ani w żadnej innej funkcji w żaden sposób się do niej nie dostaniesz
komentarz 12 marca 2017 przez Sinnley Stary wyjadacz (12,810 p.)

Jeśli pozyskasz je dopiero za pomocą funkcji to możesz to zrobić dokładnie tak samo jak opisałem wyżej.

// REFERENCJA

void jakiRozmiar(int & rozmiar)
{
cout << "Jaki rozmiar: ";
cin >> rozmiar;
}

// PRZEZ ZWRACANIE

int jakiRozmiar()
{
int rozmiar;
cout << "Jaki rozmiar: ";
cin >> rozmiar;
return rozmiar;
}

 

komentarz 12 marca 2017 przez Barteck125 Obywatel (1,120 p.)
W sumie zaczyna to nabierać sensu :) ostatnim tylko problemem jest ten "plik". W funkcji w której czytam np plik>>rozmiar nie widzi tego pliku chyba ze to nasz ifstream plik będzie globalne. Wiem, że już o tym rozmawialiśmy, ale jak mam rozwiązać ten problem gdybym nie chciał aby był globalny ? Bo jeśli nie będzie on zmienna globalną to nigdzie mi go nie widzi :)
komentarz 12 marca 2017 przez Sinnley Stary wyjadacz (12,810 p.)
Nie widzi, bo nie przekazujesz go do tej funkcji jako argument. Musisz dać funkcji tę zmienną plikową, aby mogła z niej skorzystać.

Jeśli zamierzasz tę zmienną plikową zmienić, np wpisać coś do pliku - użyj referencji, żeby zmiana nie była tylko lokalna. Jeśli nie, użyj przekazywania przez wartość. Czym to się różni wytłumaczyłem u góry.
komentarz 12 marca 2017 przez Barteck125 Obywatel (1,120 p.)
Dzięki wielkie za pomoc :) spróbuje porobić jeśli będzie jakiś problem to jeszcze sie odezwę. Pozdrawiam
komentarz 12 marca 2017 przez Sinnley Stary wyjadacz (12,810 p.)
Jak będzie problem spróbuję pomóc.

Podobne pytania

0 głosów
1 odpowiedź 615 wizyt
–1 głos
4 odpowiedzi 785 wizyt
0 głosów
1 odpowiedź 375 wizyt

92,594 zapytań

141,443 odpowiedzi

319,715 komentarzy

61,980 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...