私は C++ が初めてで、プログラムに問題があります。何時間も何日も探しましたが、これに似た投稿がたくさんありますが、プログラムが機能しない理由がわかりません。
このようにデータを含むファイルがあります。
STRING FLOAT FLOAT
STRING INT
STRING FLOAT FLOAT FLOAT
STRING INT INT
浮く
浮く ...
したがって、最初の数行には、最初の列に文字列があり、残りの列に数値があり、ある時点では浮動小数点数だけがあります。
すべてのフロートの開始位置までデータを取得できましたが、残りの数値を配列に格納する方法がわかりません。(ベクトルを使用する方がはるかに簡単であることはわかっていますが、配列を使用する必要があります)。
これが私がやったことです。
void getData(string *ext, int size)
{
istringstream is(*ext);
float val;
is >> val;
float *arrVal = new float[10]; // I dont know the size of the Array.
if(typeid(val) == typeid(float)) //IM NOT SURE ABOUT THIS AT ALL. I JUST DON'T KNOW HOW TO GET TO THE LINE WHERE THERE ARE NO STRINGS
{
arr[size] = atof(*ext.c_str());
} // I think this part is why it does not work.
int main()
{
ifstream File("t.txt");
string line;
int nLines(0);
float *arrayValues = new float[12];
if(!inFile)
{
cerr << "Cannot open file." << endl;
return -1;
}
else
{
while(getline(File, line))
{
getValues(&line, nLines);
getPoints(&line); //this function gets the values of the first lines.
++nLines;
}
}
system("pause");
return 0;
}
したがって、基本的には、すべてのフロートが開始する行にジャンプする方法と、それらを配列に格納する方法を理解する必要があります。間違いが多いのは確かです。皆さんが私がやろうとしていることを理解してくれることを願っています。私は本当にどこでも見ましたが、何も見つかりません。
ありがとうございました !!