2017-01-30 3 views
0

문제는 텍스트 파일에 1,000,000 ~ 10,000,000 개의 행이있는 것입니다. 각 행에는 10 진수 값이 들어 있습니다. C++ 파일에서 읽을 수없고 벡터에로드 할 수 없습니다.

나는이 코드를 시도 :

ifstream inData; 
    inData.open("file.txt"); 
    std::vector<double> v1v; 
    double s; 
    while(inData>>s){ 
     v1v.push_back(s); 
     cout << "Success" << endl; 
    } 

을하지만 전혀 내 벡터를 기입하지 않는 것.

double a1[1048570]; 
    ifstream inData; 
    inData.open("file.txt"); 
    for (int i=0;i<1048570;i++){ 
     inData >> a1[i]; 
    }inData.close(); 

나는 실행중인, 작동하지 않는 이유를 이해하지 않지만, 벡터에 저장된 아무것도 없다 : 나는 (파일의 행의 번호를 기록 1048570입니다)도이 방법을 시도했습니다.

+4

파일 열기 작업이 완료되었는지 확인 했습니까? 그렇지 않은 경우 시작해야합니다. – Borgleader

+0

이와 함께 파일이 디버깅중인 폴더와 동일한 폴더에 있어야 할 수도 있습니다. 파일 이름이 아니라 경로를 사용해보십시오. 경로가 실패하면 파일을 성공적으로 열지 않았을 수 있습니다. –

+0

이러한 문제를 해결하는 올바른 도구는 디버거입니다. 스택 오버플로를 묻기 전에 코드를 단계별로 실행해야합니다. 자세한 도움말은 [작은 프로그램 디버깅 방법 (Eric Lippert 작성)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)을 참조하십시오. 문제를 재현하는 [최소, 완료 및 확인 가능] (http://stackoverflow.com/help/mcve) 예제와 함께 해당 질문을 \ [편집]해야합니다. 디버거. –

답변

0

어떤 IDE를 사용하고 있습니까? 일부 IDE의 경우 프로젝트의 기본 폴더 (소스 코드 폴더가 아님)에서 읽는 파일을 가져와야 할 수 있습니다. 이클립스에서는 빈 C 프로젝트를 만들 때 볼 폴더에 파일을 넣어야한다. 컴파일 된 실행 파일이 저장된 폴더로 이동하여 파일을 저장하고 실행하십시오. 또한 디버깅을 시도 했습니까?