2011-12-09 14 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; 
    } 
} 
関連する問題