从文件的前N个文件中读取数字

时间:2015-06-11 22:35:30

标签: c file-io

我有一个文本文件,每行有一个数字。

我想从这个文件中读取一定数量的行,比如说前20行,有什么办法呢?

我有以下代码。

FILE *ft;
ft=fopen(filename,"r");
for(int k=1; k<Nt+1; k=k+1) 
{
    fscanf(ft,"%lf\n",&curve3[k]);
    printf("%lf\n",curve2[k]);
}

编辑:我将代码更改为

FILE *ft;
ft=fopen(filename,"r");
int k=1;

while(!feof(ft))
{
    if(k<=Nt)
    {
        fscanf(ft,"%lf\n",&curve2[k]);
        //printf("%lf\n",curve2[k]);
    } 
    k=k+1;
}

它似乎仍无法发挥作用。

1 个答案:

答案 0 :(得分:0)

使用此代码,您可以逐行读取文件,从而从文本文件中读取特定行。所以,你可以修改代码。

lineNumber = x;

static const char filename[] = "file.txt";
FILE *file = fopen(filename, "r");
int count = 0;
if ( file != NULL )
{
    char line[256]; /* or other suitable maximum line size */
    while (fgets(line, sizeof line, file) != NULL) /* read a line */
    {
        if (count == lineNumber)
        {
            //use line or in a function return it
            //in case of a return first close the file with "fclose(file);"
        }
        else
        {
            count++;
        }
    }
    fclose(file);
}
else
{
    //file doesn't exist
}