Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用c在文本文件中的项目之间切换_C_List - Fatal编程技术网

使用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)
一次读取一个字节,并扫描和计数分隔的“空白”序列,这可能会更有效,因为您不会每次都转换为整数。但在您的代码上下文中,它并没有那么“整洁”。根据您的应用程序,这种效率水平可能并不重要。