我正在研究一些接受文件的代码,然后对这些数字进行处理,我需要将数据放入它自己的数组中。我用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。
答案 0 :(得分:1)
您所要做的就是一次读一行(例如使用fscanf(FTIN,“%s”,行)),然后使用逗号作为标记使用strtok拆分行,最后迭代标记并转换他们每个人都到相关领域。