Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Ścieżka do pliku

Ostatnio zmodyfikowano 2010-07-13 01:20
Autor Wiadomość
kizia
Temat założony przez niniejszego użytkownika
[C++] Ścieżka do pliku
» 2010-06-10 21:39:11
Muszę zapisać/odczytać plik ze ścieżki, której nazwę ostatniego folderu oraz nazwę pliku wpiszę użytkownik. Nie stety nawet nie wiem jak zapisać plik ze ścieżką + nazwą pliku, a jeszcze do tego dochodzi nazwa ostatniego folderu.
Proszę o pomoc.
P-17877
ison
» 2010-06-10 21:54:36
nie wiem co rozumiesz przez 'nazwę ostatniego folderu'. O coś takiego ci chodziło?
C/C++
scanf( "%s", sciezka );
ifstream in( sciezka );
in >>...;

albo
C/C++
scanf( "%s", nazwa_pliku );
sprintf( sciezka, "C:/Program Files/%s", nazwa_pliku );
ifstream in( sciezka );
in >>...;

jeśli chcesz znać scieżkę twojego programu
C/C++
int main( int argc, char * argv[] )
{
    printf( "Sciezka pliku to: %s\n", argv[ 0 ] ); //pod zerowy indeks argv przypisywana jest sciezka do tego programu
}
P-17880
kizia
Temat założony przez niniejszego użytkownika
» 2010-06-10 23:35:39
Nie pomyślałem, a myślałem :D o tym że kompilator mi stworzy folder tak jak tworzy plik. (ios::out)
A więc muszę ten folder stworzyć ;p, tylko nie mam pojęcia jak.
Dzięki za to kopiowanie.

EDIT :

Pobrałem adres programu tą funkcją printf, tylko że ona podaje mi aż do .exe, a ja bym chciał tak, żeby uzyskać adres do folderu w,którym plik.exe się znajduje
(C:/Program Files/folder/gra.exe)
 Czyli w tym wypadku do folder
P-17883
malan
» 2010-06-10 23:49:40
Oj Wy lenie jedne ;p. Tak ciężko kombinować? Ja nie wiem no ;p.
C/C++
#include <iostream>
#include <string>

int main( int argc, char * argv[] )
{
    if( argc > 1 ) return 1;
   
    std::string CurrentPath;
    int temp = 0;
   
    CurrentPath = argv[ 0 ];
    temp = CurrentPath.rfind( "\\" );
    if( temp != std::string::npos )
         CurrentPath = CurrentPath.substr( 0, temp + 1 );
   
    std::cout << CurrentPath;
    return 0;
};
Dobry dzień dziś mam.
P-17884
kizia
Temat założony przez niniejszego użytkownika
» 2010-06-10 23:54:32
Tylko powiedz co funkcja 'rfind' robi. ;p
I odrazy, dlaczego Ty nie używasz przestrzeni nazw 'using namespace std ;' chyba lepiej 3 wyrazy wpisać niż przy co drugim wierszu pisac std:: xd

EDIT :

nie tylko rfind. lepiej opisz cały program :D
Tak wogóle to mam nadal problem z tą ścieżką, iż jak robie w ten sposób :
C/C++
char sciezka[ 100 ] = "C:\lolek\gra"
ofstream konta( sciezka, ios::out );
To on mi tworzy plik w tym folderze z plikiem.exe o nazwie ścieżki.
P-17885
malan
» 2010-06-11 00:02:07
No nie załamuj mnie ;p. To przecież jest prosty program..., tzn. "program". ... i jedziesz :).

/edit
char sciezka[ 100 ] = "C:/lolek/gra/cośtam.txt";
?
P-17886
kizia
Temat założony przez niniejszego użytkownika
» 2010-06-11 00:11:58
Dobra ścieżka załatwiona.
Jeszcze powiedz mi czy ciężko stworzyć folder, a jeżeli łatwo to w jaki sposób ?
P-17887
Elaine
» 2010-06-11 08:00:51
I dobrze, że nie używa using namespace - jak kiedyś napiszesz coś większego, to docenisz przestrzenie nazw i zobaczysz, dlaczego using namespace to zwykle kijowy pomysł.
P-17889
« 1 » 2 3
  Strona 1 z 3 Następna strona