- 论坛徽章:
- 0
|
- #include"apue.h"
- int main(void)
- {
- int n,int1,int2;
- char line[MAXLINE];
- while((n=read(STDIN_FILENO,line,MAXLINE))>0)
- {
- line[n]=0;
- if(sscanf(line,"%d%d",&int1,&int2)==2)
- {
- printf("%d %d %d\n",n,line[0],line[1]);
- sprintf(line,"%d\n",int1+int2);
- n=strlen(line);
- printf("%d %d %d\n",n,line[0],line[1]);
- if(write(STDOUT_FILENO,line,n)!=n)
- err_sys("write error");
- }
- else
- {
- if(write(STDOUT_FILENO,"invalid args\n",13)!=13)
- err_sys("write errr");
- }
- }
- exit(0);
- }
复制代码 这是在apue中抄的一段代码,其中的printf是我自己加进去的,就是为了查看一下line数组,中对收到的数据是怎么存放的!
但是执行的结果却和我想的不一样,我以为line[0],line[1],line[2]会分别对应 n,int1,int2,但是不是,求明白人解答!
执行结果- john_small@ubuntu:~/apue$ gcc -o add2 15-8.c
- john_small@ubuntu:~/apue$ ./add2
- 12 34
- 6 49 50
- 3 52 54
- 46
- 34 56
- 6 51 52
- 3 57 48
- 90
- 1 2
- 4 49 32
- 2 51 10
- 3
- 1 1
- 4 49 32
- 2 50 10
- 2
复制代码 |
|