2017-08-12 14 views
0

私は1000桁の数字を1000桁の配列に桁で読み込もうとしていますが、見つけられません。どんな助けもありがたい。ファイルからunspaced-intergersをC++の配列に読み込む方法は?

+0

こんにちは、数字を文字から読み取って '0'(0x30)を減算し、整数として格納します。 –

+0

何を試しましたか?遅すぎる。すでに他の人にあなたのコードを書くことに成功したようです。 –

+0

すみません。誰かが私のコードを書くことを本当に望んでいませんでした。それを行う方法についてのアイデアが必要でした。 – Master

答えて

1

個々の数字を文字として読み、文字コードを数字に変換する必要があります。

#include <iostream> 

const int n = 1000; 

int main(void){ 
    char c; 
    int digits[n]; 
    for(int i=0;i<n;i++){ 
     std::cin >> c; 
     digits[i] = c-0x30; 
    } 
    return 0; 
} 
+0

その変換は 'c - '0''でなければなりません。書かれているように、ASCII中心です。すべての文字エンコーディングで動作するには、「0」を減算する必要があります。 –

+0

ありがとうございます。本当に助けに感謝します。 – Master

1

basic_stream::get機能を使用してリテラル文字を読み、整数に変換:

#include <iostream> 
#include <fstream> 

int main(){ 
    std::fstream fs("myfile.txt"); 
    char c; 
    int arr[1000]; 
    int counter = 0; 
    while (fs.get(c)){ 
     arr[counter] = static_cast<int>(c - '0'); 
     counter++; 
    } 
} 

エラーは省略チェック。ベクトルを配列にすることを推奨します。

+0

ベクトルの使い方は本当に分かりません。それでも、助けてくれてありがとう。 – Master

関連する問題