Fstream - получение определенных строк после первой строки

0

Я пытаюсь сделать программу, которая решает для корня данного полинома, и я хотел бы использовать 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? Спасибо за помощь!

Теги:
fstream
ifstream

1 ответ

0
#include <fstream>

int main()
{
    ifstream mystream("textfilename.txt");

    int n;
    mystream >> n;
}

Он почти идентичен использованию cin, за исключением того, что вам нужно объявить ifstream.

  • 0
    Итак, я сделал это, но каким-то образом я получаю очень странные результаты, например, вместо 6x ^ 7 + 5x ^ 5 + 4x ^ 4 ... , я получаю 3.24034e-317x ^ 7 + 2.32434e-317x ^ 5 + 4.32891e- 311x ^ 5 ... Есть еще идеи, что я делаю не так? Большое спасибо!
  • 0
    @BeepBop, пожалуйста, опубликуйте полную версию своего кода, и я посмотрю на него

Ещё вопросы

Сообщество Overcoder
Наверх
Меню