Błąd otwarcia pliku

Błąd otwarcia pliku
balti
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 3 lata
  • Postów:156
0

Plik a.txt normalnie jest w folderu domyslnym tam gdzie program.
Niestety ciagle nie moze mi otworzyc pliku.

Kopiuj

#include <iostream>
#include <fstream>
 
using namespace std;
 
struct Student{
string imie;
string nazwisko;
unsigned int nr_indeksu;
};
 
Student *wczytywanie(ifstream& plik,int &lp)
{
    plik.open("a.txt",ios::in);
 
    if(plik){
        cout << "udalo sie otworzyc";
    }
    else{
        cout << "Nie udalo sie otworzyc pliku";
    }
 
    plik >> lp;
    Student *studenci = new Student[lp];
    for(int i = 0 ; i < lp ; i++)
    {
        plik >> studenci[i].imie;
        plik >> studenci[i].nazwisko;
        plik >> studenci[i].nr_indeksu;
    }
    return studenci;
}
 
int main()
{
    ifstream plik;
    int lp;
    Student *studenci = wczytywanie(plik,lp);
    cout << studenci[1].imie;
 
    return 0;
} 
spartanPAGE
  • Rejestracja:około 12 lat
  • Ostatnio:około 3 godziny
4

Ścieżka z której środowisko uruchamia program jest troszkę inna od miejsca, w którym się on znajduje.

edytowany 1x, ostatnio: spartanPAGE
balti
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 3 lata
  • Postów:156
0

Sprawdzilem i tu jest program
C:\Documents and Settings\Balti\Pulpit\Metody programowania\zadanie 1\main.cpp
Natomiast plik jest w
C:\Documents and Settings\Balti\Pulpit\Metody programowania\zadanie 1

edytowany 1x, ostatnio: balti
BE
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:32
0

std::ios::in | std::ios::out
A tryb otwarcia pliku to zgubiłeś?
Skąd kompilator ma wiedzieć w jaki sposób chcesz wykorzystać plik jak nie podajesz mu tego w argumentach

ios::app - dopisywanie danych do pliku) Ustawia wskaznik zapisu
ios::ate - Ustawia wewnętrzny wskaźnik pliku na jego koniec w chwili otwarcia pliku.
ios::binary Info dla kompilatora, aby ten traktował to jako strumień danych binarnych, a nie jako strumień danych tekstowych.

Kopiuj
ios::in	 Zezwolenie na odczytywanie danych z pliku.
ios::out  Zezwolenie na zapisywanie danych do pliku.

ios::trunc Zawartość pliku jest tracona, plik jest obcinany do 0 bajtów podczas otwierania.

edit:// usuń std, bo masz ustawioną przestrzeń nazw namespace std;

edytowany 8x, ostatnio: Bendnarecki
twonek
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 2 lata
  • Postów:2500
3
balti napisał(a):

Sprawdzilem i tu jest program
C:\Documents and Settings\Balti\Pulpit\Metody programowania\zadanie 1\main.cpp

Co ma plik źródłowy do programu? Jeśli już masz się interesować, to raczej plikiem exe, tyle że tak jak @spartanPAGE napisał, obecność exe i txt w jednym folderze jeszcze nie gwarantuje sukcesu, bo zależy jak uruchamiasz to exe.

BE
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:32
0
twonek napisał(a):
balti napisał(a):

Sprawdzilem i tu jest program
C:\Documents and Settings\Balti\Pulpit\Metody programowania\zadanie 1\main.cpp

Co ma plik źródłowy do programu? Jeśli już masz się interesować, to raczej plikiem exe, tyle że tak jak @spartanPAGE napisał, obecność exe i txt w jednym folderze jeszcze nie gwarantuje sukcesu, bo zależy jak uruchamiasz to exe.

o tak szybko przeleciałem, że nie zauważyłem tej linii

Kopiuj
plik.open("a.txt",ios::in);

mój błąd, zwracam honor, więc to co napisałem tam wyżej z ,ios::in) jest nieaktualne

@ do autora:
Podaj pełną scieżke do pliku w formie "C:\katalog\plik.txt"

edytowany 2x, ostatnio: Bendnarecki

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.