在C++中对文件中的值单独执行计算

Perform calculation seperately on values from file in C++

本文关键字:单独 执行 计算 文件 C++      更新时间:2023-10-16

所以我有一个输入文件,其中包含几个不同的整数值(每个值在一行中(,现在我需要读取每个值,找到平方根并获得输出。我遇到的问题是,我的代码只读取输入文件中的第一个值。我有一种感觉,我应该使用一个循环来分别读取每个值,所以如果有人能帮我,我将不胜感激。

float file_inp() //reads values from file and calculates the square root
{
float y = 0;
ifstream fin;
fin.open("input.txt",ios::in);
if (fin)
{
int x = 0;
fin >> x;
y=sqrt(x);
}
return y;
}
int main()
{
float y = 0;
cout << file_inp();
system("Pause");
return 0;
}

主要问题是您有一个读取文件并返回一个数字的函数
再多的循环也无法使该函数产生多个数字。

与其让一个函数完成所有的工作,不如让一些函数完成一点工作,并反复使用它们
将I/O与数据处理分离也是一个好主意。

这是常见的"空白分隔输入的元素处理"循环:

int main()
{
std::ifstream input("input.txt");  // No 'ios::in'; it's already an input stream.
SomeType piece;
while (input >> piece) // Read until you can't read no more.
{
process(piece);  // Do whatever you want to do.
}
}

根据需要调整类型和处理。

在您的情况下,

int main()
{
std::ifstream input("input.txt");
int x;
while (input >> x)
{
std::cout << std::sqrt(x) << std::endl;
}
}