Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[C++] Sprawdzanie czy plik istnieje


Rekomendowane odpowiedzi

Opublikowano

Ostatnio zacząłem poznawac biblotekę fstream i natknąłem się na pewnie problem. Część mojego programu na za zadanie sprawdzenia czy podany wczesniej plik istnieje i niestety nie wiem jak to powinno być.

 

Napisałem takie coś ale najpierw jest tworzenie lub otwieranie pliku a później sprawdzenia. Nie mam pojęcia jak to zrobić więc prosiłbym o czyjąś pomoc.

 

#include <conio.h>
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
ofstream plik;
plik.open("plik.txt");
if(!"plik.txt")
{
printf("Plik nie istnieje.");
}
else
{
printf("Plik istnieje.");
}
plik.close();
getch();
return 1;
}

Weteran
Opublikowano

Zacznijmy od tego, że używasz printf bez biblioteki cstdio

Zależy od kompilatora. W moim gcc printf działa bez żadnych includów.

 

@Top

np. tak

#include <fstream>
#include <cstdio>
using namespace std;
int main()
{
fstream plik;
plik.open("plik.txt");
if(plik.is_open())
{
 printf("Plik istnieje.");
}
else
{
 printf("Plik nie istnieje.");
}
plik.close();
}

Opublikowano

Niestety występuje ten sam problem. Potrzebuję kod który sprawdzi czy istnieje jakiś plik i jeśli nie to napisze na ekranie ale bez tworzenie nowego pliku. Bo tutaj funkcja plik.open("plik.txt"); sprawdza czy taki plik istnieje i jeśli nie to go tworzy odrazu a ja chcę żeby go nie tworzyło (może trochę masło maślane ale mam nadzieję, że będzie wiadomo o co chodzi).

Weteran
Opublikowano

tutaj funkcja plik.open("plik.txt"); sprawdza czy taki plik istnieje i jeśli nie to go tworzy odrazu a ja chcę żeby go nie tworzyło (może trochę masło maślane ale mam nadzieję, że będzie wiadomo o co chodzi).

Jesteś tego pewien? Owszem, w przypadku ofstream tak jest, ale w fstream nie powinno to mieć miejsca.

 

Ewentualnie można jeszcze tak:


#include <cstdio>
#include <windows.h>

bool Exists(char* path)
{
return FindFirstFile(path, new WIN32_FIND_DATA) != INVALID_HANDLE_VALUE;
}
int main()
{
if(Exists("f:/asdasd.txt"))
printf("ok");
else
printf("bad");
}


Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...