Błąd otwarcia pliku

0

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


#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;
} 
4

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

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

0

std::in | std::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.

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;

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.

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

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"

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