Zufallsauwahl aus bestimmten Zeichen
-
Hi ich suche eine Möglichkeit einen String zufällig mit den Zeichen "1234567890ABCDEF" also den Hexadezimal-System zu füllen wie würde man so etwas implementieren? Sorry für die saublöde Frage, bin halt noch Anfänger
...Danke im Vorraus, Riessi
-
petejacobx schrieb:
Hi ich suche eine Möglichkeit einen String zufällig mit den Zeichen "1234567890ABCDEF" also den Hexadezimal-System zu füllen wie würde man so etwas implementieren? Sorry für die saublöde Frage, bin halt noch Anfänger
...Danke im v******, Riessi
//#include <cstdlib>//für rand //#include <ctime>//für time //am anfang der main() wäre srand(time(0)) fein #include <string>//für string #include <iostream>//für cout using namespace std;//um nicht immer std:: zu schreiben static char digits[16]="0123456789ABCDEF"; strint result; for(int i=0;i<len;++i) int r=rand()%16; result+=digits[r]; cout<<result;
-
Hallo,
Ansatz: (Ungetestet)
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { const string hex_arr("0123456789ABCDEF"); string str; unsigned int str_len = 10; // Länge des Strings str. srand(time(0)); // Samen mit aktueller Zeit initalisieren for(unsigned int i = 0; i < str_len; ++i) str += hex_arr[rand() % 16]; cout << "\n str: " << str << '\n'; return 0; }btw. Voraus schreibt man immernoch mit einem 'r'

Caipi
-
Danke Caipi noch ein kleiner Fix sonst gibts Errors:
cout << "\n str: " << str.c_str() << '\n';aWR(am Weges Rande): aus Rächtschreibuhng mach isch mir nichtz!
-
petejacobx schrieb:
Danke Caipi noch ein kleiner Fix sonst gibts Errors:
cout << "\n str: " << str.c_str() << '\n';Was für Fehler?
Der Operator << ist normalerweise auch für die Klasse std::string überladen.
Welchen Compiler verwendest du?Caipi
-
Ich hab MSVC 6... kenn mich mit dem Compiler-Zeug net so aus auf jeden Fall gehts mit meiner Methode ansonsten gibts den Fehler:
myfile.cpp(17) : error C2679: Binaerer Operator '<<' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class std::basic_string <char,struct std::char_traits<char>,class std::allocator<char> >' akzeptiert (oder keine geeignete Konvertierung moeglich)Das hab ich dann bei google reingehackt und das problem so gelöst, wie könnte man des noch fixen (Kompilereinstellungen oder so?)
pete
-
petejacobx schrieb:
aWR(am Weges Rande): aus Rächtschreibuhng mach isch mir nichtz!
Naja, das solltest du aber spätestens dann,wenn keiner mehr erkennen kann was du sagen/fragen willst....
btw
bei mir(gcc 3.x) compiliert der Code auch mit std::string einwandfrei; aber das wurde ja auch erwartet
-
im Stroustrup steht, dass es den Operator gibt:
basic_ostream<Ch,Tr>& operator<< (basic_ostream<Ch,Tr>&, const basic_string<Ch,Tr,A>&);cout ist vom Typ ostream (was gleichbedeutend ist mit basic_ostream<char, std::char_traits<char> >)
und string ist ein typedef für std::basic_string
<char,std::char_traits<char>,std::allocator<char> >Muss also passen...
-
egal. Ich hab mir jetzt auch mingw + gcc geholt da läufts einwandfrei in der original version durch. Danke trotzdem.
-
petejacobx schrieb:
egal. Ich hab mir jetzt auch mingw + gcc geholt da läufts einwandfrei in der original version durch. Danke trotzdem.
den benutzt der poster auch
edit: oder sowas
#include <sstream> #include <iostream> using namespace std; int main() { srand(time(0)); stringstream ss; ss << hex; for (int s=0; s<100; s++) ss << rand()%16; cout << ss.str() << endl; cin.get(); }