usuwanie i dodawanie pliku

0

witam mam taki problem chce stworzyć plik tekstowy który znajduje sie w katalogu z programem "dane"
program jest przypuśćmy ze w
"jakiś tam dysk""Katalog programu"
a dane w
Jakiś tam dysk""katalog programu"\dane
i tu jest problem potrafię zrobić zęby plik usuwany i dodawany z katalogu programu a z katalogu dane to nie mam zielonego pojęcia jak to zrobić (uzupełnianie katalogu dane nie było by uzależnione od położenia programu czyli: ".\dane"+nazwa pliku" << nie wiem jak to zapisać

      
       cout<<"Dodawanie danych - konto (liczby + 'txt'"<<endl;
          FILE *plik;
            char nazwa[256]; 
                 scanf("%s",&nazwa);
                 plik = fopen(nazwa, "w");
                 fclose(plik);
                 cout<<"Uzupelnianie"<<endl<<"Podaj nick postaci"<<endl;
                 cin>>dane.charname;
                 cout<<"Podaj Poziom postaci"<<endl;
                 cin>>dane.poziom;
                 cout<<"Podaj plec postaci 1-Meszczyzna 2-Kobieta"<<endl;
                 int a;
                 cin>>a;
               
                 
                 if(a==1)
                 {
                            dane.plec.meszczyzna="Meszczyzna";}
                            
                      if (a==2)  {  
                            dane.plec.kobieta="Kobieta";
                            
                            }              
                 
                 
                 ofstream zapis(nazwa);
                 zapis<<dane.charname<<endl;
                 zapis<<dane.poziom<<endl;
                 if(a==1)
                           {
                           zapis<<dane.plec.meszczyzna<<endl;
                           }
                            
                      if (a==2) 
                           {  
                            zapis<<dane.plec.kobieta<<endl;
                            
                            }      
                 zapis.close();
jak by się dało to poprawić tą część programu :}
Z góry dzięki!
0

jak tam cie nie chcieli to przyszedłeś tu http://peb.pl/programowanie/791785-usuwanie-pliku-c.html#post3351563

0

wole napisać na paru forach bo to jest większa szansa ze ktoś mi pomoże...
łaskawie jak możesz to pomóż a nie wytkasz double tematy do tego na 2 rożnych forach...

0

Poda jakim systemem to ma działać? Jeśli chcesz aby folder znajdował się w dowolnym miejscu musisz gdzieś przechować ścieżkę do niego, którą zapiszesz przy pierwszym uruchomieniu programu ( podczas tworzenia folderu ). Chyba, że ma to być stałe miejsce to możesz użyć ścieżki bezwględnej. Możesz też skorzystać z okna dialogowego do operacji na plikach ( np biblioteka Qt ) w WinApi też odnajdziesz ciekawe funkcje. Wszystko jest zależne w czym, pod co i jak chcesz napisać, to powinieneś uwzględnić w swoim pytaniu. Pozdrawiam.

0

chodzi mi o ścieżkę względem programy i jak to zrobić żeby połączyć ścieżkę i daną wprowadzoną przez usera

0

osobiście dostałem takie coś

string sciezka = ".\dane";
sciezka += "nazwa";
fopen(sciezka, "w");

po dodaniu bibliotek jest błąd w linii fopen

0

bo string sierotko ma pierwszy argument typu CHAR* a nie STD::STRING. zacznij CZYTAC dokladnie co Ci IDE podpowiada, a jak nie podpowiada, to przynajmniej czytaj komunikaty bledow, bo pewnie blad brzmial "cannot convert std::basic_string to char*"..

fopen(sciezka.c_str(), "w")

0

to może inaczej
prosił bym przerobić to tak aby tworzyło plik w folderze dene

FILE *plik;
            char nazwa[256]; 
                 scanf("%s",&nazwa);
                 plik = fopen(nazwa, "w");
                 fclose(plik);

i analogicznie postradam się dojść do odczytu

0

wiec tak teraz mam inny pomysł tylko potrzeba mi do tego przerobić ten kawałek programu tak aby pokazywał tylko pliki txt

DIR *dp;
  struct dirent *ep;
     
  dp = opendir (".\\dene");
  if (dp != NULL)  
  {
    while (ep = readdir (dp)) puts (ep->d_name);
    (void) closedir (dp);
  } 
0

nie sadze, zebys mial wredne pliki ktore maja ".txt" w nazwie, wiec:
.... if(strstr(ep->d_name,".txt")) ...

0

wiec tak teraz mam inny pomysł tylko potrzeba mi do tego przerobić ten kawałek programu tak aby pokazywał tylko pliki txt

DIR *dp;
struct dirent *ep;

dp = opendir (".\");
if (dp != NULL)
{
while (ep = readdir (dp)) puts (ep->d_name);
(void) closedir (dp);
}

jeśli mam to wstawić za to zaznaczone na czerwono to nie pokazuje żadnego pliku...

if(strstr(ep->d_name,".txt"))

najlepiej żebyście podali gotową przeróbkę programu albo zaznaczać gdzie co mam wstawić :)

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