我有一些代码试图从文件中获取数据。格式是这样的:9 / 2d 0 / 1s。文件中可能有多个,但我需要取第一个数字并将其设置为要添加的索引。然后我需要将下一个数字和字符保存为单独的值。我在这里有一些代码,但它没有那么好用。
struct matrix tokens[nbrState][12];
int *num = 0;
int index = 0;
while ((ptr = fgets(buf, 256, fp)) != NULL){
ptrToken = strtok(buf, "/");
int count = 0;
for(int r = 0; r < 12; r++){
if(count >= 3){
ptrToken = strtok(NULL, " ");
index = atoi(ptrToken);
tokens[index][r].state = index;
}
count++;
}
}
这是我更新的代码。它的效果更好。
struct matrix tokens[nbrState][12];
char *tok;
int index = 0;
int state = 0;
while((ptr = fgets(buf, 256, fp)) != NULL){
ptrToken = strtok(buf, " ");
tok = ptrToken;
//index = strtok(tok, "/");
for(int r = 0; r < 12; r++){
index = atoi(tok);
state = atoi(ptrToken);
tokens[index][12].state = state;
}
}
答案 0 :(得分:0)
你可以试试这个
while ( ( fscanf ( fp, "%d/%d%c", &index, &separateInt, &separateChar) == 3) {
// use values as needed
tokens[index][11].state = sepatateInt;
}
循环将继续,直到EOF或文件输入与格式不匹配。