połączenie dwóch char[]

0

Witam wszystkich forumowiczów:

Próbuje wylistować pliki z danego folderu. Potrzebuje połączyć wydobytą nazwę ze znaną mi ścieżką, jednak nie bardzo mi to wychodzi. Próbowałem wielu sposobów. Jakaś podpowiedź? Proszę o pomoc.

while (pdir = readdir(dir)) {
    char* path = strcat("D:\\zbiorek\\", pdir->d_name);
        cout << pdir->d_name << endl;
}

Błąd w przypadku użycia powyższego kodu:

Type deprecated conversion from string constant to 'char*'
Possible assignment in condition 'pdir = readdir(dir)'  program.cpp /myProject/src  line 45 Semantic Error

W przypadku takiego kodu
while (pdir = readdir(dir)) {
string path = "C:\image_database\" + pdir->d_name;
cout << pdir->d_name << endl;
}
otrzymuje taki błąd:

 Type
invalid operands of types 'const char [19]' and 'char [260]' to binary 'operator+'  program.cpp 
Possible assignment in condition 'pdir = readdir(dir)'  program.cpp /myProject/src  line 45 Semantic Error

Proszę o pomoc.

1
  1. W pierwszym przypadku NIE WOLNO ci tak zrobić. Stały string zapisany w kodzie to jest pewna STAŁA której nie można modyfikować a strcat to własnie by chciał zrobić. Mógłbyś zrobić np. tak:
    char path[1024]="D:\\zbiorek\\"
    strcat(path, pdir->d_name);
  2. Kolejność operacji... Nie ma czegoś takiego jak operator dodawania dla tablic charów!
    string path = "C:\\image_database\\"; #teraz to już jest std::string i można do niego dodawać
    path+= pdir->d_name;

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