如何从txt文件C制作数组

我得到了包含以下信息的文本文件: (100; 200;第一个) 。任何人都可以告诉我如何将这些信息分成三个数组: Min = 100,Max = 200,Name = first 。 我试过这个

C = GETC(INP);

I =的atoi(szinput);

但它第一次读取10次,第二次读取00次……依此类推

c节省10而不是1,所以我无法获得数组的正确信息……

因此arraysMin存储1000而不是100

谢谢。

您可以执行以下操作

FILE *file; char readBuffer[40]; int c; file = fopen("your_file","r"); while ((c=getc(file))!= EOF) { strcat(readBuffer, c); if( (char) c == ';') //this is the delimiter. Your min, max, name code goes here } fclose(file); 

像这样使用scanffscanf

 scanf("(%d;%d;%[^)])",&min,&max,str); 

这是一个很酷,简单的教程 ,介绍如何做到这一点。

请注意,您需要稍微调整一下示例,但这不应该太困难。

你也可以尝试找一个能完成这项工作的库,我相信C有很多这样的库:)

使用strtok()

 #include  #include  int main() { char input[] = "100;200;first"; char name[10]; int min, max; char* result = NULL; char delims[] = ";"; result = strtok(input, delims); // atoi() converts ascii to integer. min = atoi(result); result = strtok(NULL, delims); max = atoi(result); result = strtok(NULL, delims); strcpy(name, result); printf("Min=%d, Max=%d, Name=%s\n", min, max, name); } 

输出:

 Min=100, Max=200, Name=first