Fstream - 在第一行之后获取特定行

时间:2014-12-07 05:34:00

标签: c++ fstream ifstream

我正在尝试创建一个解决给定多项式的根的程序,并且我想使用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实现类似的功能?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

#include <fstream>

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

    int n;
    mystream >> n;
}

除了需要声明ifstream之外,它几乎与使用cin相同。