텍스트 파일을 읽고 텍스트 파일의 토큰을 2-D 매트릭스에 넣는 데 문제가 있습니다. 여기 텍스트 파일을 읽고 토큰을 2D 매트릭스에 넣는 데 문제가 있습니다.
내 코드입니다 : 나는 2-D 매트릭스를 표시하고자 할 때 더 프로그램에서 나는 오류가없는std::vector< vector <std::string> > my_matrix(10, vector <std::string>(10));
ifstream myReadFile;
myReadFile.open("class_data.txt", ios_base::in);
char output[100];
if (myReadFile.is_open()) {
if (!myReadFile.eof()) {
myReadFile >> output;
char* token = NULL;
char* context = NULL;
char delims[] = " ,\t\n";
token = strtok_s(output, delims, &context);
if (token != NULL)
{
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
my_matrix[i][j] = *token;
cout << "token = " << token << endl;
cout << "matrix = " << my_matrix[i][j] << endl;
token = strtok_s(NULL, delims, &context);
}
}
}
}
}
std::cout.width(3); std::cout << left << "ID";
std::cout.width(9); std::cout << left << "Project1";
std::cout.width(9); std::cout << left << "Project2";
std::cout.width(9); std::cout << left << "Project3";
std::cout.width(9); std::cout << left << "Project4";
std::cout.width(9); std::cout << left << "Project5";
std::cout.width(9); std::cout << left << "Project6";
std::cout.width(9); std::cout << left << "Project7";
std::cout.width(9); std::cout << left << "Midterm";
std::cout.width(9); std::cout << left << "Final" << std::endl;
std::cout << "-------------------------------------------------------------------------------" << std::endl;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
cout.width(10); std::cout << my_matrix[i][j];
}
std::cout << " " << std::endl;
}
, 그것은 컴파일하지만, 그것을 표시하지 않습니다. 전체 행렬에는 아무런 가치가 없습니다.
누구든지 나를 도와 줄 수 있고 문제가 무엇인지 말해 줄 수 있습니까? 2 for 루프를 수행하는 방식과 맞습니까, 아니면 텍스트 파일을 읽는 방식입니까? 문제가 발견되면 누구나 해결책을 제안 할 수 있습니다.
P.S 최고 전문 코드가 없으면 미안하지만 C++에서는 초보자이며 대학 수준의 프로그래밍 과정을 수강하지 않았습니다.
바로이 같은 매트릭스 = 성병 : : 문자열 연산자에 전달, 당신은 이미 10 × 10 행렬을 가지고 strtok를 현재 토큰 숯불 *를 반환
입력 데이터의 모양을 보여줄 수 있습니까? –
classdata.txt에는 다음 텍스트가 포함되어 있습니다. A00529154 76 79 85 91 75 80 90 56 58 A00656624 79 85 0 86 86 76 51 89 92 A02507691 47 94 92 49 77 72 25 25 95 A00612352 41 82 90 58 87 0 50 98 80 A04012435 91 50 78 68 70 60 42 74 85 A00654400 47 94 89 75 80 76 0 71 83 A00577109 44 88 84 86 89 88 99 100 90 A00580920 41 82 80 90 89 97 93 84 86 A04028610 90 90 90 90 90 90 90 90 90 A04063494 90 90 90 90 70 90 90 90 012 –