重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用fgets 一行行读入,读到EOF结束。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站建设、齐齐哈尔网络推广、小程序定制开发、齐齐哈尔网络营销、齐齐哈尔企业策划、齐齐哈尔品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供齐齐哈尔建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
每读一行用 下面函数找到address 后面方括号 i1,i2 位置
void f1(char *str, int *i1, int *i2){
int i,j=0,L;
L = strlen(str);
if (L 8) { printf("no address line\n"); *i1=0; *i2=0;};
for (i=0;iL;i++){
if ( strncmp(str+i,"address",7)==0) {j=i+7; break;};
}
for (i=j;iL;i++){
if (str[i]=='[') *i1=i;
if (str[i]==']') { *i2=i; break;}
}
}
从这行字符串中取出地址 str[i1+1] 到 str[i2-1], 写入文件。
调用例子:
main()
{
char str[400]=".......address..[123 bay street Apt. 5] abcdb ssks 567 ";
char add[80];
int i,j,i1,i2;
f1(str[0],i1,i2);
printf("%d %d",i1,i2);
for (i=i1+1;ii2;i++) { j=i-i1-1; add[j]=str[i];};
add[j+1]='\0';
printf("%s ",add);
return 0;
}
1. 绝对宏:
在程序中,用“#includeabsacc.h”即可使用其中定义的宏来访问绝对地址,包括CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD
具体使用可看一看absacc.h便知,例如:
rval=CBYTE[0x0002];指向程序存贮器的0002h地址
rval=XWORD[0x0002];指向外RAM的0002h地址
2. _at_关键字
直接在数据定义后加上_at_ const即可,但是注意:
(1)绝对变量不能被初使化;
(2)bit型函数及变量不能用_at_指定。
例如:
idata struct link list _at_ 0x40;指定list结构从40h开始。
xdata char text[25b] _at_0xE000;指定text数组从0E000H开始
提示:如果外部绝对变量是I/O端口等可自行变化数据,需要使用volatile关键字进行描述,请参考absacc.h。
直接用
(char*)(0x000)
补充一下,不同类型的变量占的存储单元(字节)是不同的,char*只是该字节的值,而int*则是该字节和后面3个字节(总共4个字节)的值,你要确定到底一次读多少字节,选择合适类型的指针。