我收到了包含以下信息的文本文件:(100; 200;第一个)。任何人都可以告诉我如何将这些信息分成三个数组: Min = 100,Max = 200和Name =第一即可。我试过这个
C = GETC(INP);
I =的atoi(szinput);
但它首次读取10,第二次读取00 ...依次循环
c保存10而不是1,所以我无法获得数组的正确信息......
所以阵列Min存储1000而不是100
感谢。
答案 0 :(得分:2)
像这样使用scanf
或fscanf
:
scanf("(%d;%d;%[^)])",&min,&max,str);
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以执行以下操作
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);
答案 3 :(得分:0)
使用strtok()
:
#include <stdio.h>
#include <string.h>
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