memset(buf, 0x00, sizeof(buf));
sprintf(buf,"%s/fpconfig/ttys.idx\0",getenv("HOME"));
if ((fp = fopen(buf,"r")) == NULL)
{
waitforCR("[%s]端口索引文件打开发生错误!",buf,1);
return 0;
}
while (fgets(buf,80,fp)!=NULL)
{
memset(strTmp, 0x00, sizeof(strTmp));
i = sscanf(buf, "%[^|]|%[^|]|%[^|]|%[^|]|\n",
NULL,strTmp,NULL,NULL);
/*
buf里的内容是这样的
tty03 |123456700|1|tty1a |
我只想获取其中123456700这部分,其他的就直接丢弃了。
所以我在其他几个应该是变量的地方用了NULL,目前运行没发现问题,
但不知道这样做是不是正确呢?
是不是还可以通过改写那个格式化字符来直接得到第2个间隔中的值??
谢谢!!!
*/
if (i>0)
{
if (strncmp(strTmp, strNodeID, 9)==0)
{
fclose(fp);
return 1;
}
}
}
fclose(fp);
return 0;
sprintf(buf,"%s/fpconfig/ttys.idx\0",getenv("HOME"));
if ((fp = fopen(buf,"r")) == NULL)
{
waitforCR("[%s]端口索引文件打开发生错误!",buf,1);
return 0;
}
while (fgets(buf,80,fp)!=NULL)
{
memset(strTmp, 0x00, sizeof(strTmp));
i = sscanf(buf, "%[^|]|%[^|]|%[^|]|%[^|]|\n",
NULL,strTmp,NULL,NULL);
/*
buf里的内容是这样的
tty03 |123456700|1|tty1a |
我只想获取其中123456700这部分,其他的就直接丢弃了。
所以我在其他几个应该是变量的地方用了NULL,目前运行没发现问题,
但不知道这样做是不是正确呢?
是不是还可以通过改写那个格式化字符来直接得到第2个间隔中的值??
谢谢!!!
*/
if (i>0)
{
if (strncmp(strTmp, strNodeID, 9)==0)
{
fclose(fp);
return 1;
}
}
}
fclose(fp);
return 0;
int x;
sscanf(buf,"|%d",&x);
int x;
sscanf(buf,"|%d",&x); CString str;
str.Format("%d",x);
符合你的要求吗?
如果不明白
请给我发短消息
请附: 帖子的地址
或根据http://www.vcshare.net上的联系方式与我联系
---------------
欢迎访问我的个人论坛http://www.vcshare.net/bbs
char* pstart = strchr(buf,'|');
if( pstart )
{
pstart++;
char* pend = strchr(pstart,'|');
if( pend )
{
strncpy(res,pstart,pend-pstart);
}
}
麻烦了一点儿,呵呵