1

テキストファイルがあります。最初の数値を取り出し、他の数値を配列に入れる必要があります。ファイルのサイズは不明です。私のコードでは、最初に を使用vector.sizeしてそのサイズを把握し、次に配列を作成しようとしています。誰かが私に何が悪いのかを教えてくれることを願っています。

入力ファイルの例:

3                   
2 2                   
output        
Can take out a=3;          
array[0]=2;array[1]=2;

コード:

int main()
{
    int n, inInt;
    vector <int> list;
    ifstream ifs("1.txt");

    int a;
    ifs>>a;
    std::vector<int> result;
    int temp;

    while(! ifs.eof())
    {
        ifs >> temp;
        result.push_back(temp);
    }

    int b;
    b=result.size();
    int numlist[b];

    for (int i=0;i<b;i++)
    {
        ifs>>numlist[i];
    } 
    cout<<numlist[0];

    ifs.close();
    system("pause");
    return 0;
}
4

2 に答える 2

0
int main(int argc, char* argv[])
{
    int n, inInt;
    vector <int> list;
    ifstream ifs("1.txt");
    int a;
    ifs>>a;
    std::vector<int> result;
    int temp;
    while(! ifs.eof())
    {
        ifs >> temp;
        if(ifs.good())     //Check to see did the operation work
        result.push_back(temp);
    }
    int b;
    b=result.size();
    cout<<result[0];

    ifs.close();
    system("pause");
    return 0;
}
于 2013-07-21T09:52:51.450 に答える
0

まず第一に、あなたが使用しなければならないかわからないサイズの配列を作成したい場合:

int *numlist = new int[b];

そしてあなたのコードの最後に:

delete[] numlist;

第二に、ファイルからの値を保持するベクトルがある場合に、ファイルを再度読み取ることのポイントは何ですか? 次のようにする方が簡単ではないでしょうか。

for (i=0; i < b; i++)
     numlist[i] = result[i];

これがお役に立てば幸いです。

于 2013-07-21T10:03:33.700 に答える