파일의 내용으로 해시 테이블을 만들어야하는 프로그램을 만들고 있습니다. 이 파일에는 키 (int), 이름 (문자열), 코드 (int) 및 비용 (double)이 포함 된 레코드 (한 줄에 1 개)가 들어 있습니다. 대부분의 프로그램에서 해시 테이블을 작성하는 코드를 작성했지만 파일에서 테이블을로드하는 방법을 파악하는 데 문제가 있습니다. 보다 구체적으로, 레코드의 각 부분을 해당 변수에 저장하는 방법은 무엇입니까?파일의 내용을 C++의 변수에 저장합니다.
코드는 다소 길지만 게시하는 것이 내 질문에 대한 답변에 도움이된다고 알려 주시면 기꺼이 알려 드리겠습니다.
나는 내가으로 설정 한 각 레코드에 포함 된 정보를 보유하도록 설정 구조체를 가지고, 그래도 난이 포함되어야한다 생각 하는가하는 것은 다음과
struct record {
int key;
string name;
int code;
double cost;
}
당신이 다른 부분을 참조해야하는 경우 코드 전체 또는 코드를 알려주십시오.
당신이 어떤 문제가있는을 구체적으로? 구조체 사용법을 모르십니까? –
필자가 주로 사용하는 방법은 파일을 열고 읽는 것이지만 파일의 여러 부분을 관련 변수에 저장하는 방법을 모르겠습니다. 예를 들어, 키는 내 int 키 변수에 저장되어야하며, 이름은 문자열 이름에 있어야합니다. 실제로는 이전에이 작업을 수행 한 적이 없었습니다. 전체 변수를 특정 변수에 저장한다는 의미였습니다. – HiTechRedneck3
귀하가 수락 한 답변은 * 나타날 수도 있지만, 알아 두어야 할 몇 가지 결함이 있습니다. [** 루프 상태의 iostream :: eof가 잘못된 것으로 간주되는 이유는 무엇입니까? **] (http://stackoverflow.com/questions/5605125/). 읽기는 언제든지 실패 할 수 있으며 모든 실패가 eof 상태를 제공하지는 않으므로 정의되지 않은 동작 (잘 정의 된 무한 루프)이 발생할 수 있습니다. @RedAlert에 의해 제안 된대로'while (f >> key >> name >> code >> cost)'조건을 만든 다음 다른 읽기를 제거하면 적어도 그 문제는 해결 될 것입니다. – HostileFork