그래, 프로그래밍에 익숙하지는 않지만 수치 방법을 사용하여 세 가지 물질의 혼합물의 온도를 계산하는 C++ 프로그램을 작성하는 과제가 있습니다. 혼합물 중 각 물질의 엔탈피 및 퍼센트 기본적으로 h = a1 * T + a2 * T^2 + ... a6까지의 다항식입니다. 이러한 계수 a1 내지 a6은 각각 H20, H2 및 O2에 대해 표로 주어진다. 내 프로그램은 물질 방정식에 계수를 사용할 수 있도록 .dat 파일에서 계수의 물질 이름과 값을 읽을 수 있어야합니다. 그것이 내가 도움이 필요한 것입니다. 방정식에서 물질 이름과 계수 값을 입력 할 수 있도록 프로그램에 배열을 입력하려면 어떻게해야합니까? 죄송합니다 소설지만 가능한 한 많은 컨텍스트를 제공하려고했습니다. 아래의 은 정확히 내 .dat 파일에 있으며, 배열에 넣으려고합니다. 물질의 이름은 첫째, 등배열에 단어와 숫자의 파일을 입력하십시오. C++
H2O 406598.40 440.77751 -.12006604 .000015305539 -.00000000072544769 -4475789700 H2 50815.714 9.9343506 -.000027849704 -.00000035332966 .000000000041898079 -14329128 O2 961091.64 199.15972 -.052736240 .00000897950410 -.00000000063609681 -318699310
이 지금까지 내 소스 코드,하지만이 작동하지, 나는 꽤 잃었어요 A1, A2,옵니다.
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
double myArray[21];
ifstream file("thermo2.dat");
if (file.is_open())
{
for (int i = 0; i < 21; ++i)
{
file >> myArray[i];
}
}
else
{
cout << "the file did not open";
}
for (int i = 0; i < 21; ++i)
{
cout << " " << myArray[i];
}
return 0;
}
감사합니다!
편집 :에 호출 일치 기능 '의 getline (표준 : : ifstream & 두 번 &, 문자)': 내가 오류가 계속 .... 구조체의 배열 작업을 시도하기 시작했다. 를 heres 코드 :
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
struct Data
{
string species;
double a1, a2, a3, a4, a5, a6;
};
int main()
{
ifstream fin;
fin.open("thermo2.dat");
if (fin.fail())
{
cout << "Failed to open file" << endl;
}
Data * database = new Data[3];
string line;
for(int i = 0; i < 3; i++)
{
getline(fin, database[i].species, '\t');
getline(fin, database[i].a1, '\t');
getline(fin, database[i].a2, '\t');
getline(fin, database[i].a3, '\t');
getline(fin, database[i].a4, '\t');
getline(fin, database[i].a5, '\t');
getline(fin, database[i].a6, '\t');
}
system("pause");
return 0;
}
먼저 당신이 데이터를 저장하는 방법을 결정합니다. 하나의 배열 또는 3 개의 배열을 원하십니까? 파일에서 물질 이름이 필요합니까? 그렇다면 어떻게 저장해야합니까? * – Beta
하나의 구조체 배열을 사용하려고합니다. 그러나 게시 된 편집을 살펴보고 그에 대한 통찰력을 제공 할 수 있다면 작동하도록 고심하고 있습니다. '위대해! –