对于本周的家庭作业,我的任务是从文件中获取输入并从输入的数字中递归地取最大公约数。我遇到了一个问题。我知道我必须使用cin.peek()来读取行尾的位置,但是我遇到了麻烦。如何更改代码以便单独显示行?
文件中有25个数字,但我只是显示前几行,以便了解我在说什么。我还附上了我的代码,非常感谢任何帮助。我不是在寻找一个直接的答案。我只需指出正确的方向。
谢谢!
**Text File:
5 7
12 15
80 40 100
Code:
int gcd(int a, int b);
int gcd(int a, int b)
{
if (b != 0)
return gcd(b, a % b);
else
return a;
}
int main()
{
ifstream input("A1.txt");
int a = 0;
int b = 0;
int i = 0;
int j = 0;
int gcdArr[25];
if (input.is_open())
{
for (i = 0; i < 25; i++)
{
input >> gcdArr[i];
}
}
i = 0;
for (j = 0; j < 25; j++)
{
while ((cin.peek()) != '\n')
{
cout << gcd(gcdArr[i], gcdArr[i+1]) << endl;
}
i++;
}
_getch();
return 0;
}