2011-12-09 3 views
0

아래 코드는 파일에서 올바른 문자를 읽지 않습니다. 어떤 생각이 잘못 됐습니까?정수가 포함 된 파일을 배열로 읽는 데 도움이 필요합니다.

ifstream inFile; 
    inFile.open("chars.txt"); 

    char ch; //dummy variable 
    char first, last; 
    int first1, last1; 

    for(int i=0;i<SIZE;i++) 
    { 
     for(int j=0;j<5;j++){ 
     inFile.get(first); 
     inFile.get(last); 

이 시점에서 처음과 마지막은 파일의 올바른 문자가 아닙니다. (루프를 통해 첫 번째 실행) 아마 뭔가 간단하지만, 나는 이것에 정말로 나쁘다. 미리 감사드립니다.

+1

당신은 "파일에서 올바른 문자를 읽을 수 없습니다"무엇을 의미합니까? 파일의 내용은 무엇입니까? 기대하는 가치는 무엇입니까? –

답변

0

이것이 C++에 적용되는지 확실하지 않지만 C#에서이 문제가 발생했습니다.

문자를 읽을 때 Char.GetNumericValue();을 사용해야했습니다. C#에서

샘플 코드 : 당신은 수동으로 같은 번호를 구문 분석 할 필요가 없습니다

int myInt; 
char myChar = '5'; 

myInt = Char.GetNumericValue(myChar); 
Console.WriteLine("My character as int: "+myInt.ToString()); 
1

. 대신 get 기능을 사용하여, 나는 다음 예에서와 같이, 추출 연산자 >>를 사용하는 것이 좋습니다 것 :

#include <vector> 
#include <fstream> 
#include <iostream> 

int main() 
{ 
    std::vector<int> values; 
    std::ifstream inFile("chars.txt"); 
    int temp; 

    // Read the values in one at a time: 
    while (inFile >> temp) 
    { 
    values.push_back(temp); 
    } 

    // Demonstrate that we got them all by printing them back out: 
    for (unsigned int i = 0; i < values.size(); ++i) 
    { 
    std::cout << "[" << i << "]: " << values[i] << std::endl; 
    } 
} 
관련 문제