问题描述
- 用fscanf()函数怎样将$GS_FKJ[0,2] = 54中[]里的0,2分别取出来
-
并保存在两个Int型变量里??求各位大神指点!!!万分感谢!!!!
解决方案
还是用字符查找来定位,然后取子字符/字符串的方法可靠一些。
解决方案二:
读取字符串,然后字符串查找,正则表达式匹配,这几种方法
解决方案三:
按行读出字符串,用sscanf处理。
%*[^[]指忽略[之前的字符串。
sscanf("$GS_FKJ[0,2] = 54", "%*[^[][%d,%d", &i, &j);
解决方案四:
int main(int argc, char *argv[])
{
int i, j;
FILE *fp = fopen("./in.data", "r");
if(!fp) {
printf("can't open filen");
return -1;
}
while(!feof(fp)) {
if (fscanf(fp, "%*[^[][%d,%d", &i, &j) > 0)
printf("%d, %dn", i, j);
}
fclose(fp);
return 0;
}
解决方案五:
int main(int argc, char *argv[])
{
int i, j;
FILE *fp = fopen("./in.data", "r");
if(!fp) {
printf("can't open filen");
return -1;
}
while(!feof(fp)) {
if (fscanf(fp, "%*[^[][%d,%d", &i, &j) > 0)
printf("%d, %dn", i, j);
}
fclose(fp);
return 0;
}
解决方案六:
fscanf()里的格式化字符串写为”$GS_FKJ[%d,%d]“,或者读入字符串,自己分析。
时间: 2024-10-24 17:41:59