Chinaunix
标题:
关于read函数和sscanf函数的一点小疑问
[打印本页]
作者:
unixerrrrr
时间:
2012-09-25 16:45
标题:
关于read函数和sscanf函数的一点小疑问
#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
复制代码
作者:
device_memory
时间:
2012-09-26 08:10
int 和char
作者:
device_memory
时间:
2012-09-26 08:11
。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2