problem mit einem vector...*verzweifel*
- 
					
					
					
					
 nachdem ich mir ewig der schädel zermartert habe, entschloss ich mich euch doch zu nerven mit meinem prob (mir fällt nix mehr ein c-noob) problem: 
 ich hab einen ordner mit ein paar tausend bildern, durch diesen ordner gehe ich mit findfirstfile/findnextfile und bekomme dateinamen. Diese sollten unsortiert/gemischt in eine textdatei ausgegeben werden.lösungsversuch: 
 mit findfirstfile/findnextfile und bekomme dateinamen
 pack sie namen in einen vector, mische mit random_shuffle
 schreib die vectordaten in eine dateiich hab 
 "vector<char> v(counter);"
 ...später...
 v.at(count) = wfd2.cFileName; ((wfd2.cFileName ist vom typ char[260]))bei vector<char> v(counter); gibts fehler: cannot convert from 'char [260]' to 'char' 
 bei vector<char[260]> v(counter); gibts fehler: cannot convert from 'int' to 'char [260]'
 bei vector<char*> v(counter); gibts keine fehler aber in allen feldern steht das selbe drin2. versuch Also ich habs mal mit vector<string> getestet... das bringt aber mein restliches programm total durcheinander.... 3. versuch mit einem char array int counter = 0; 
 ---counter wird hochgezählt---
 char vec[counter][260]; //statt vector
 vec[count] = wfd2.cFileName;aber fehler....  
 error C2057: expected constant expression
 error C2466: cannot allocate an array of constant size 0
 error C2133: 'vec' : unknown size
 error C2106: '=' : left operand must be l-valuelangsam geht mir mein c aus bzw meine ideen.... danke für jedes Posting  tomk 
 
- 
					
					
					
					
 Hallo, 
 das ein vector<char> nicht funktioniert sollte klar sein. Ein char ist ein einzelnes Zeichen und kann damit natürlich keinen ganzen String speichern.2. versuch Also ich habs mal mit vector<string> getestet... das bringt aber mein restliches programm total durcheinander.... Das ist ein guter Weg. Inwiefern hat das dein restliches Programm durcheinander gebracht? Du weißt, dass du von std::string nach const char* durch den Aufruf von std::string::c_str() kommen kannst, richtig? 
 
- 
					
					
					
					
 HumeSikkins schrieb: Das ist ein guter Weg. Inwiefern hat das dein restliches Programm durcheinander gebracht? Du weißt, dass du von std::string nach const char* durch den Aufruf von std::string::c_str() kommen kannst, richtig? danke für die fix antwort... das mit std::string::c_str() wusst ich noch nicht.. wie gesagt c-noob  ich werd mal sehen was ich damit anfangen kann hier ist noch ein bissel code aus der entsprechenen stelle vector<string> v(counter); int count = 0; f2Handle=FindFirstFile(temp,&wfd2); do { if (!( (wfd2.cFileName[0]=='.') && ( (wfd2.cFileName[1]=='.' && wfd2.cFileName[2]==0) || wfd2.cFileName[1]==0 ) )) { if (wfd2.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {} else { v.at(count) = wfd2.cFileName; count++; printf("%s\n",wfd2.cFileName); } } } while (FindNextFile(f2Handle,&wfd2)); FindClose(f2Handle); printf("%s\n",v.at(0)); // geht nicht mehr printf("%s\n",v.at(counter-1)); // auch nicht random_shuffle(v.at(0),v.at(counter-1)); // sowieso nicht
 
- 
					
					
					
					
 printf("%s\n",v.at(0)); // geht nicht mehr Korrekt: printf("%s\n",v.at(0).c_str());oder cout << v.at(0) << "\n";printf("%s\n",v.at(counter-1)); // auch nicht siehe oben. Richtig: random_shuffle(v.begin(),v.end());
 
- 
					
					
					
					
 printf("%s\n",v.at(0).c_str()); // geht nicht mehr printf("%s\n",v.at(counter-1).c_str()); // auch nichtNa, was ist wohl in deinem Vector drin? Genau std::string! 
 
- 
					
					
					
					
 DANKE!!!!!!!! es funzt jetzt...