2012-12-05 3 views
0

"ifstream"을 사용하여 외부 .dat 파일을 연 다음 벡터 배열로 각 double을 읽는 것입니다.파일에서 배열로 복식 가져 오기 세트 C++

내가 무엇을 가지고 :

//Setup I/O 
ifstream fileIn; 
ofstream fileOut; 

//Define vector for file data 
vector<double> fileData; 

fileIn.open("/FilePath.../checkIn.dat"); 
//If opening failed, display this text. 
if (fileIn.fail()) 
{ 
    cout << " Input file opening failed.\n"; 
    //stop program 
    exit(1); 
} 

내가에서 읽고 있어요 파일 :

2000 1 1225.72 1 463.81 3 200 1 632 2 1500 1 300 2 1800 

내가 인터넷 주위에 모든 찾고 있었어요이, 유용한 무언가를 찾을 수 없습니다. Java에서 "hasNextDouble"과 유사한 함수를 찾고 있는데요.

답변

3

Java를 너무 가깝게 (즉, 필요한 것보다 훨씬 더 복잡하게) 만들려고하는 것처럼 들리 네요.

// Open the file 
std::ifstream file_in("/FilePath.../checkIn.dat"); 

// Create the vector, initialized from the numbers in the file: 
std::vector<double> fileData((std::istream_iterator<double>(file_in)), 
           std::istream_iterator<double>()); 

... 완료되었습니다.

+0

간단하고 간결합니다. 지금은 사용자 정의 형식 LOL 단지 그렇게 쉬운 일이라면 – johnathon

+0

그 코드를 사용할 때 나는 다음과 같은 오류가 나타납니다 매우 후 '벡터 ' 그리고 예상 ')'의 초기화를위한 일치하는 생성자 을 라인의 끝. –

+0

@BrillianceOfBen : 죄송합니다. 나는 팸을 놓쳤습니다. 필자는 테스트를 위해 온라인으로 [완만하게 수정 된 버전] (http://ideone.com/JEACS0)을 썼다. (지원되는 유일한 입력이기 때문에'std :: cin'에서 읽도록 수정되었고,'std :: cout', 성공적으로 읽음을 보여줌). –

관련 문제