나는 다음 코드가 있습니다.잘못된 변환 문제 C++에서
아래 코드에 어떤 문제가 있습니까? 어떻게 그것을 극복 할 수 있습니까?
전체 코드는 여기에 있습니다 :
#include <iostream>
#include <vector>
#include <fstream>
#include <sstream>
#include <time.h>
using namespace std;
int main (int arg_count, char *arg_vec[]) {
if (arg_count < 3) {
cerr << "expected one argument" << endl;
return EXIT_FAILURE;
}
// Initialize Random Seed
srand (time(NULL));
string line;
string tag1 = arg_vec[1];
string tag2 = arg_vec[2];
double SubsRate = 0.003;
double nofTag = static_cast<double>(atoi(arg_vec[3]));
vector <string> DNA;
DNA.push_back("A");
DNA.push_back("C");
DNA.push_back("G");
DNA.push_back("T");
for (unsigned i=0; i < nofTag ; i++) {
int toSub = rand() % 1000 + 1;
if (toSub <= (SubsRate * 1000)) {
// Mutate
cout << toSub << " Sub" << endl;
int mutateNo = 0;
for (int j=0; j < tag1.size(); j++) {
mutateNo++;
string base = tag1[j]; // This fail
int dnaNo = rand() % 4;
if (mutateNo <= 3) {
// Mutation happen at most at 3 position
base = DNA[dnaNo];
}
cout << tag1[j] << " " << dnaNo << " " << base << endl;
//cout << base;
}
cout << endl;
}
else {
// Don't mutate
//cout << tag1 << endl;
}
}
return 0;
}
가 왜 const char*
에 char
에서 잘못된 변환을받을 수 있나요 문자열 전체를 반복 할 때?
하지만 그 경우 "(mutateNo <= 3) – neversaint
@foolishbrat"내부의 "기본"과 충돌이 발생합니다. OP가 DNA (벡터 (char) 일 것임)에 잘못된 유형을 선택했기 때문에? – dmckee
음. ..s/the OP/you/죄송합니다, 신중하게 읽지 않았습니다 ... – dmckee