2013-10-20 3 views
0

현재이 형식의 텍스트 파일 (item.txt)을 읽으려고합니다. itemId : itemDescription : itemCategory : itemSubCategory : amountPerUnit : itemQuantity : date 원하는 내용은 다음과 같습니다. 텍스트 파일을 읽고 내 예상 출력에 따라 벡터 안에 저장하십시오.C++ 텍스트 파일을 읽고 벡터에 저장

+0

당신은'여기 struct' 사용해야합니다. 공개 멤버 함수를 통해 비공개 멤버를 수정할 수있게하면 모든 멤버를 공개 할 수 있습니다. – Shoe

+0

@Jefffrey 왜냐하면 내가 자바에 익숙해 져서 C++을 배우기 시작했기 때문에 나는 "논리의 자바 방식"으로 일을하는 경향이있다.하지만 당신의 제안에 감사 드리며 구조체를 읽을 것이다. – user3493435

답변

2

std::getline을 사용하면 올바른 방법입니다. 대신 파일을 한 줄씩 읽은 다음 std::istringstream에 전체 줄을 넣고 을 입력 한 다음을 입력하면 std::getline을 사용하여 줄을 토큰화할 수 있습니다.

보통 입력 연산자 >>을 공백으로 구분하여 사용할 수 없습니다.


while (std::getline(readFile, line)) 
{ 
    std::istringstream iss(line); 
    std::string temp; 

    std::getline(iss, temp, ':'); 
    itemId = std::stoi(temp); 

    std::getline(iss, itemDescription, ':'); 
    std::getline(iss, itemCategory, ':'); 
    std::getline(iss, itemSubCategory, ':'); 

    std::getline(iss, temp, ':'); 
    amountPerUnit = std::stod(temp); 

    std::getline(iss, temp, ':'); 
    quantity = std::stoi(temp); 

    std::getline(iss, date, ':'); 

    // Create object and add it to the vector 
} 
+0

죄송합니다. 하지만 내가 보여줄 수있는 예를? – user3493435

+0

@ user3493435 내 대답 업데이트 됨 –

+0

도움 주셔서 감사합니다. – user3493435

관련 문제