임의의 문자열을 벡터로 생성해야하는 제 기능에 문제가 있습니다. 그러나, 내가 얻는 것은 벡터의 첫 번째 요소가 무작위이고 나머지는 비어 있습니다. 코드는 다음과 같습니다.C++에서 임의의 문자열 벡터 생성
void losuj(vector <string> &vec, int ile){
int i, j;
string str;
stringstream ss;
char c;
for(i=0; i<ile; i++){
for(j=0; j<5; j++){
c= rand()%25 + 97;
ss << c;
}
ss >> str;
vec.push_back(str);
ss.str().clear();
str.clear();
}
}
무엇이 잘못되었을 수도 있습니다.
하지'ss.str()'단지 않습니다 다른 것 대신 문자열을 반환합니까? 그걸 너무 분명히하지 않을 것 같은데 '분명히'라고 부르는 것 같아요? – TankorSmash
문자열 스트림을 잃습니다. 그것은 필요하지 않습니다. 'str.append (c) '를 사용하는 for-loop 내부의 로컬'str'이면 충분합니다. 그리고 ''은 이것을 * 많이 * 깨끗하게합니다. –
WhozCraig
97과 같은 숫자 대신 'A'와 같은 문자 리터럴을 사용하십시오. –