使用c在文本文件中的项目之间切换
我有一个素数列表使用c在文本文件中的项目之间切换,c,list,C,List,我有一个素数列表 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 .... 我想写一个循环,依次选择其中的每一个,然后对它们进行处理(将它们与另一个素数相乘)。我不知道该怎么做;到目前为止,我的代码是这样的 #include<stdio.h> main() { FILE *fr; fr = fopen ("primes1.txt", "rt");
p1 p2 p3 p4 p5 p6 p7
p8 p9 p10 p11 p12 p13 p14
p15 p16 p17 p18 p19 p20 p21
....
我想写一个循环,依次选择其中的每一个,然后对它们进行处理(将它们与另一个素数相乘)。我不知道该怎么做;到目前为止,我的代码是这样的
#include<stdio.h>
main()
{
FILE *fr;
fr = fopen ("primes1.txt", "rt");
}
#包括
main()
{
文件*fr;
fr=fopen(“primes1.txt”、“rt”);
}
所以,是的,我真的没走多远。我以前做过类似的事情,但是文本文件中的数据量非常小。我现在使用的文件包含一百万个素数。如果有人能帮助我,我将非常感激 您应该能够像这样单独读取数字:
int n;
FILE *fp;
if ( (fp = fopen("foo.txt", "r")) == NULL )
{
// Do something if the file's not found
return -1;
}
while ( fscanf(fp, "%d", &n) == 1 )
{
// fscanf reads the next integer and skip white space, including linefeeds
// Do something with the next value "n" from the file
// You can store them in an array, manipulate all the ones read so far, etc
}
fclose( fp );
您显示的代码没有任何用处。至少发布你为小数据文件所做的代码。是的,对不起,我应该详细说明一下。我的意思是这个文件太小了(大约有20个元素),我可以直接在代码中输入它,而不需要引用任何文件。有什么方法可以让它从某个位置开始吗?@Slugger,如果你是指某个特定的素数,那么最简单的方法可能就是像上面那样读取它们,然后跳过/计数你不想要的。或者,您可以使用
fgetc(fp)
一次读取一个字节,并扫描和计数分隔的“空白”序列,这可能会更有效,因为您不会每次都转换为整数。但在您的代码上下文中,它并没有那么“整洁”。根据您的应用程序,这种效率水平可能并不重要。