문제

AccountNumber 유형 금액

15 확인 52.42

23 절약 51.51

11 확인 12.21

가 내 탭 Delemated 파일

계정 번호로 행을 검색 할 수 있습니다.23 살이되면 그 특정 행을 얻고 싶습니다.ID는 어떻게 그렇게합니까?

또한 더 많은 사전, 특정 값을 변경하고 싶다면, 금액 51.51을 고려한 23.5. 그 값을 어떻게 페치하고 새로운 가치로 교체합니까?

지금까지 행에서 행에서 읽는 것

문자열 라인; ifstream이 ( "account.txt");

 if (is.is_open())
 {
while (std::getline(is, line))  // read one line at a time
{
    string value;
    string parseline;
    std::istringstream iss(line);

    getline(line, parseline);
    cout << parseline << endl;  // do something with the value
    while (iss >> value)    // read one value at at time from the line
    {
        //cout << line << "   ";    // do something with the value
    }
}
is.close();
 }
 else
     cout << "File cant be opened" << endl;

return 0;
.

도움이 되었습니까?

해결책

각 라인이 가변 길이의 경우 전체 파일을 먼저 구문 분석하지 않고 특정 행에 인덱싱 할 수있는 방법이 없습니다.

그러나 프로그램이 임의의 행과 열을 조작하려는 의심스럽게 생각합니다.그래서 나는 전체 파일을 구문 분석하여 시작합니다.각 행을 배열의 자체 데이터 구조에 넣은 다음 배열의 행을 인덱싱합니다.

"strtok"를 사용하여 입력을 행으로 분할 한 다음 다시 각 행을 필드로 나눌 수 있습니다.

다른 팁

내가이 작업을 수행하는 경우 먼저 전체 파일을 구문 분석하고 적절한 데이터 구조 (예 : 배열 또는 std :: map)에 데이터를 저장하는 몇 가지 기능을 작성합니다.그런 다음 필수 작업 (예 : 검색 또는 편집)에 대한 데이터 구조를 사용합니다.마지막으로, 수정이있는 경우 데이터 구조체를 파일에 다시 쓸 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top