仍然是C++的初學者,我無法弄清楚如何使用fstream
。 我想要將其值分配給一組在我的程序double
變量,從 一個.txt
或.csv
文件(.csv
可能是出於實際考慮好。)如何從.txt或.csv文件導入數值變量
比方說,我的input_file.csv
看起來像這樣:
10
0
20
0.4
0.1333382222
0
0.5
10
20
0.76
0.3
0.1
0.2
這些價值觀應該被分配到在我的代碼以下變量(第一個聲明爲等於0
):
/// geometry
double Dist=0; ///Distance between the 2
double PosAi = 0;
double PosAo = 0;
double PosBi = 0;
double PosBo = 0; ///positions i/o
/// densities
double iDA=0;
double oDA=0;
double iDAtop=0;
double oDAtop=0; /// Left
double iDB=0;
double oDB=0;
double iDBtop=0;
double oDBtop=0; /// Right
我想讀的input_file.csv
的值,並將它們分配給我的變量,因此,如果I型:
cout<<Dist<<" "<<PosAi<<" "<<PosAo<<" "<<
...........等。 ;
我得到以下列表中的控制檯上:
10 0 20 0.4 0.1333382222 0 0.5 10 20 0.76 0.3 0.1 0.2
但我不知道如何使用fsteam對於這一點,你能幫一點? 謝謝!
確定這裏就是答案,如果以往任何時候都像我一些初學者得到了同樣的問題:如果你知道如何打印一組變量與cout
#include <iostream>
#include <fstream>
using namespace std;
/// geometry
double Dist=0; ///Distance between the 2
double PosAi = 0;
double PosAo = 0;
double PosBi = 0;
double PosBo = 0; ///positions i/o
/// densities
double iDA=0;
double oDA=0;
double iDAtop=0;
double oDAtop=0; /// Left
double iDB=0;
double oDB=0;
double iDBtop=0;
double oDBtop=0; /// Right
int main()
{
ifstream ifs ("input.csv");
if (!ifs)
// process error
ifs >> Dist;
ifs >> PosAi;
ifs >> PosAo;
ifs >> PosBi;
ifs >> PosBo;
ifs >> iDA;
ifs >> oDA;
ifs >> iDAtop;
ifs >> oDAtop;
ifs >> iDB;
ifs >> oDB;
ifs >> iDBtop;
ifs >> oDBtop;
// print variables
cout << Dist << " " << PosAi << " " << PosAo << " " << PosBi << " " << PosBo << " " << iDA << " " << oDA << " " << iDAtop << " " << oDAtop << " " << iDB << " " << oDB << " " << iDBtop << " " << oDBtop << endl;
}
感謝
如果沒有你向我們展示你已經嘗試過的一點點東西,很難幫助你,因爲我告訴你如何去做你已經知道的事情並不重要。 –
這個編輯後更清晰嗎? –
@ adrienlucca.wordpress.com你不使用'fstream',你使用'ofstream'。你可能不直接訪問它,而是通過'istream&'。 –