所以我需要从文件中读取n个数字,并在屏幕上仅打印那些素数。确定数字是否为素数的代码正在运行,但在检查数字后,它不想检查其他n个数字。
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
int main()
{
int n = 0;
unsigned int x = 0;
cout << "n= ";
cin >> n;
ifstream f("numbers.txt");
for (int i = 1; i <= n; i++)
{
int p = 1;
f >> x;
if (x % 2 == 0)
{
if (x == 2)
cout << x << endl;
}
else
{
for (int i = 3; i <= x / 2; i++)
{
if (x%i == 0)
p = 0;
}
if (p == 1)
cout << x << endl;
}
cout << "i= " << i << "x= " << x<<endl;
}
f.close();
_getch();
return 0;
}
文件是
53
34
65
234
756
342
988
997
1
2
97
234
87
234
867
37
234
这是对文件输出的测试,因为我无法发布图像
53
i= 1x= 53
i= 2x= 34
i= 3x= 65
i= 4x= 234
i= 5x= 756
i= 6x= 342
i= 7x= 988
答案 0 :(得分:0)
您应该通过这种方式阅读文件:
std::ifstream f("your_file_name.txt");
unsigned long int x;
while(f >> x) // will be 0 when the value can't be read (= at the end of the file)
if(is_prime(x))
std::cout << x << std::endl;
请注意,不需要在作用域末尾关闭文件。 f
的析构函数将完成这项工作。