Я пытаюсь сделать программу, которая решает для корня данного полинома, и я хотел бы использовать fstream для получения полинома, корни которого программа решит. В принципе, есть текстовый файл, содержащий некоторые цифры, например:
5
3
7
-5
0
7
-6
3
4
0
8
Первое число будет степенью полинома d, и от этого программа будет отсчитывать от значения d до 0. Затем программа выводит что-то вроде "The polynomial whose roots you'd like to compute is 3x^5+7x^4-5x^3+7x-6"
, извлекая значение из каждой строки.
Я смог реализовать что-то похожее на это, но вместо того, чтобы извлекать числа из текстового файла, пользователь должен был бы ввести его. Указанный код ниже:
int main(int argc, char *argv[])
{
int n;
cout << "Enter the degree of your polynomial: ";
cin >> n;
double a[n];
for(int m = n; m >= 0; m--)
{
if(m == 0)
{
cout << "Please enter the constant: ";
}
else
{
cout << "Please enter the coefficient of x^" << m << ": ";
}
cin >> a[m];
}
cout<<endl<< "The polynomial you entered is: ";
for(int i = n; i >= 0; i--)
{
if(i == 0 && a[0] >0)
{
cout << " + " << a[0] ;
}
else if(a[i] == 1 && i == n)
{
cout << "x^" << i;
}
else if(a[i] == 1)
{
cout << " + x^" << i;
}
else if(a[i] == -1 && i == n)
{
cout << "-x^" << i;
}
else if(a[i] == -1)
{
cout << " - x^" << i;
}
else if(a[i] < -1&& i!=0)
{
cout << " - " << fabs(a[i]) << "x^" << i;
}
else if(i==n )
{
cout << a[i] << "x^" << i;
}
else if(i != 0 && a[i]>0)
{
cout << " + " << a[i] << "x^" << i;
}
else if(i==0&&a[0] < 0)
{
cout << " - " << fabs(a[0]);
}
Как реализовать что-то подобное с помощью fstream? Спасибо за помощь!
#include <fstream>
int main()
{
ifstream mystream("textfilename.txt");
int n;
mystream >> n;
}
Он почти идентичен использованию cin, за исключением того, что вам нужно объявить ifstream.