옵션 |
|
각 ID에 따라 파일이름이 다른 "ID".dat 파일을 이용하려고 합니다.
그 파일마다 들어있는 이메일주소를 벡터인 userEmailList에 모아 넣으려고 하는데 잘 되질 않습니다.
예를 들어..
ㅡㅡㅡ
kim.dat 파일에
아이디는 kim // 이메일은 [email protected] // 권한은 Customer 가 들어있고
ㅡㅡㅡ
lee.dat파일에
아이디는 lee // 이메일은 [email protected] //권한은 Custmomer가 들어있다고 예를 들겠습니다.
ㅡㅡㅡ
제가 작성한 코드상에서는 포문안에서 cout << *it << " " ; 으로 체크해보면 아이디의 목록인 kim과 lee가 정상적으로 체크됩니다.
하지만
cout"Email list: "for (it = userEmailList.begin(); it != userEmailList.end(); ++it) cout << " " << *it; cout << endl;`
코드를 통해 userEmailList의 벡터내역을 확인해보면 첫 파일에 들어있는 이메일인 [email protected]만 두 개가 들어있습니다. 어떻게 해야 정상적으로 [email protected]과 [email protected]이 순차적으로 입력될까요??
아래는 문제의 코드입니다.
void FileManage::loadUserInfoFile() { string tempID, tempEmail, tempAuth; ifstream userInfoFile; try { vector<string>::iterator it; for (it = userIDList.begin(); it != userIDList.end(); ++it) { //cout << *it << " " ; 을 해보면 kim과 lee가 출력됨(이 부분은 정상) openFileToRead(userInfoFile, (*it + ".dat").c_str()); while (userInfoFile >> tempID >> tempEmail >> tempAuth); { userEmailList.push_back(tempEmail); } } } catch (string err) { cerr << err << endl; exit(EXIT_FAILURE); } userInfoFile.close(); }
for문 안의 내용을 아래처럼 수정해도 역시나 결과는 같습니다..
for(int i = 0; i < userIDList.size(); i++) { openFileToRead(userInfoFile, (userIDList[i] + ".dat").c_str()); while (userInfoFile >> tempID >> tempEmail >> tempAuth); { userEmailList.push_back(tempEmail); }