服务器之家

服务器之家 > 正文

C语言从txt文件中逐行读入数据存到数组中的实现方法

时间:2021-04-23 14:49     来源/作者:C语言教程网

首先,要知道数据的存储格式是怎样的,

?
1
2
3
4
5
6
7
8
9
10
65 2
722 542
691 514
644 506
588 524
565 558
608 580
648 586
696 572
482 564

第一行表示数字的个数和维数,所以要先读入这些信息:

?
1
2
3
4
5
6
7
<span style="white-space:pre">    </span>FILE *fp = fopen("2D_Jesscia_keypos.txt", "r");
    if ( !fp )
    {
        fprintf( stderr, "! Error: faild to open keypos file \n" );
        return -1;
    }
    fscanf(fp, "%d %d%c", &in.numberofpoints, &dim, &ne);

这样就得到了个数信息,这样方便动态的分配内存,接下来就可以逐行读入数据了:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<span style="white-space:pre">    </span>in.pointlist = (REAL *) malloc( in.numberofpoints * 2 * sizeof(REAL) );
    char buf[1024];
    char pt1, pt2;
    for (i = 0; i < in.numberofpoints; i++)
    {
        if (!feof(fp))
        {
            if (fgets(buf, 1024, fp) == NULL)
                break;
            sscanf(buf, "%s %s\n", &pt1, &pt2);
            in.pointlist[2 * i] = atoi(&pt1);
            in.pointlist[2 * i + 1] = atoi(&pt2);      
        }
    }

注意,是现将每一行读入buf中,这是字符串类型的,然后再利用sscanf将里面的内容读给pt1和pt2,再利用atoi函数得到数据类型的值。

以上就是小编为大家带来的C语言从txt文件中逐行读入数据存到数组中的实现方法全部内容了,希望大家多多支持服务器之家~

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
返回顶部