2017-01-30 51 views
0

問題は、1,000,000〜10,000,000行のテキストファイルがあり、各行に10進数の値が格納されていることです。C++ファイルから読み込むことができず、ベクターに読み込むことができません

私はこのコードを試してみました:

ifstream inData; 
    inData.open("file.txt"); 
    std::vector<double> v1v; 
    double s; 
    while(inData>>s){ 
     v1v.push_back(s); 
     cout << "Success" << endl; 
    } 

をしかし、全くの私のベクトルを埋めるようには見えません。

double a1[1048570]; 
    ifstream inData; 
    inData.open("file.txt"); 
    for (int i=0;i<1048570;i++){ 
     inData >> a1[i]; 
    }inData.close(); 

私は実行している、働いていない理由を理解していないが、ベクトルに保存されているものはありません:私は(ファイルの行数に注意してください1048570です)あまりにもこのアプローチを試してみました。

+4

ファイルのオープン操作が成功したことを確認しましたか?もしそうでなければ、それから始めるべきです。 – Borgleader

+0

これに加えて、ファイルがデバッグしているのと同じフォルダにある必要があります。ファイル名だけでなく、パスも使用してみてください。パスが失敗すると、ファイルを正常に開かなかった可能性があります。 –

+0

このような問題を解決する適切なツールは、デバッガです。スタックオーバーフローを尋ねる前に、コードを一行ずつ進める必要があります。詳しいヘルプは、[小さなプログラムをデバッグする方法(Eric Lippert)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を参照してください。最低限、問題を再現する[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例と、その問題を再現するためのデバッガ。 –

答えて

0

どのIDEを使用していますか?一部のIDEでは、ソースコードフォルダではなく、プロジェクトのメインフォルダに、読み込んでいるファイルを置く必要があるかもしれません。 Eclipseでは、空のCプロジェクトを作成するときに表示されるフォルダにファイルを置く必要があります。コンパイルされた実行可能ファイルが格納されているフォルダに移動し、そこにファイルを配置して実行してみてください。また、デバッグを試しましたか?