使用strtok将东西放入单独的数组中

时间:2015-03-29 19:18:36

标签: c arrays input

我正在研究一些接受文件的代码,然后对这些数字进行处理,我需要将数据放入它自己的数组中。我用fscanf做过,但现在我需要用strtok做。如果每个东西都进入同一个数组,我就可以做到,但我不知道如何让每个项目都在自己的数组中。

TL:DR; 我需要这样做

/*************************************************************************

3/25/2015
This program takes in a file of the format
    PART,2.000,-1,0.050,V
    PART,0.975,-1,0.025,V
    PART,3.000,+1,0.010,F
    GAP,0.000,0.080
does the tolerance analysis
**************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
    FILE *FTIN;
    FTIN = fopen ("tin.txt", "r");
    float nom[100], tollerance[100];
    int SIGNS[100];
    char V_F[100];
    int status, i, x;
    float Act_Gap, Act_Tollerance, Maximum_Gap, Minnimum_Gap, Spec_Minnimum, Spec_Maximum;

    if (FTIN == NULL){    //file empty/broken error

            printf("ERROR\n");
            return (1);
        }
    else{
        for (i=0; status != EOF; i++){  //reads until EoF, even though some guy on stackoverflow taught me it's bad
            status = fscanf(FTIN,"PART,%f,%d,%f,%c\n", &nom[i], &SIGNS[i], &tollerance[i], &V_F[i]); //scans for a part
            status = fscanf(FTIN, "GAP,%f,%f\n", &Spec_Minnimum, &Spec_Maximum);  //scans for a gap
            }

使用strtok。

1 个答案:

答案 0 :(得分:1)

您所要做的就是一次读一行(例如使用fscanf(FTIN,“%s”,行)),然后使用逗号作为标记使用strtok拆分行,最后迭代标记并转换他们每个人都到相关领域。