fopen a win xp

0

Ostatnio testowalem swoje programy konsolowe pod xp. Pod Win 98
kod:

FILE *plik=fopen("plik.txt","rt");

po prostu otwiera plik z bierzącego katalogu. Pod XP to nie działa, fopen zawsze zwraca NULL, no chyba ze podac pełną ścieżkę dostępu do pliku np "c://plik.txt", co jednak nie jest zbyt wygodne. Podobnie zachowuje się metoda open() dla klas z fstream.h. Plik oczywiście jest w odpowiednim miejscu i jak juz pisalem pod win98 wszystko działa. co ztym fantem zrobic? :)

0

hmmm , mi pod xp fopen działa bez problemu ... A w jaki sposób uruchamiasz program ?? Przez debuggera w kompilatorze , z linii poleceń , czy może np bezpośrednio z jakiegoś Windows Commandera ?? Spróbuj bez argumentu "t"

0

U mnie też pod XP nie otwiera z katalogu bieżącego. Nie ważne, czy uruchomię przez IDE czy z linii poleceń. Może to dlatego, że DOS w WinXP nie istnieje, a jeżeli uruchomi się kilka linii poleceń, to który katalog jest domyślny? (w Linuksie nie ma na szczęście z tym problemu).
Ja proponuję odczytywać po prostu ścieżkę z parametrów wejściowych programu (tak musiałem w jednym z projektów robić).

0

i mi podobnie się dzieje... acha hehe nie bądź śmieszny mówiąc że XP nie ma DOS'u hehe..... a tak w ogóle polecam użyć makra FILE do odnajdywania ścieżki pliku....

0

<font color="green">acha hehe nie bądź śmieszny mówiąc że XP nie ma DOS'u hehe..... </span> :-)

W takim razie, tez jestem smieszny :).

0

Zauważyłem coś takiego:
Powiedzmy że tworze w Dev c++ projekt ktorego roboczym
katalogiem jest c:\Projekt. Używam w projekcie
FILE *plik=fopen("plik.txt", "rt");
Win98 w tej sytuacji "szuka" otwieranego pliku w bieżącym
katalogu projektu (czyli c:\projekt w tym przypadku) co jest logiczne :).
Okazuje się że XP w tej sytacji "szuka" pliku w katalogu w ktorym znajduje się
plik exe Dev C++ !!!! Jak dla mnie jest to conajmniej dziwne, ale może
problem tkwi w ustawieniach dev, lub samego systemu?

0

Zauważyłem coś takiego:
Powiedzmy że tworze w Dev c++ projekt ktorego roboczym
katalogiem jest c:Projekt. Używam w projekcie
FILE *plik=fopen("plik.txt", "rt");
Win98 w tej sytuacji "szuka" otwieranego pliku w bieżącym
katalogu projektu (czyli c:projekt w tym przypadku) co jest logiczne :).
Okazuje się że XP w tej sytacji "szuka" pliku w katalogu w ktorym znajduje się
plik exe Dev C++ !!!! Jak dla mnie jest to conajmniej dziwne, ale może
problem tkwi w ustawieniach dev, lub samego systemu?

Ja proponuje zrobić jak Dryo radzi : użyć argumentów funkcji main

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