게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C++ for문으로 vector에 push하는게 잘 안 되서 질문드려요.
게시물ID : programmer_19150짧은주소 복사하기
작성자 : 첫댓평생솔로
추천 : 0
조회수 : 445회
댓글수 : 8개
등록시간 : 2016/11/29 17:34:02
옵션
  • 본인삭제금지
  • 외부펌금지

각 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);          } 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호