LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 742|回复: 7

关于c的一个小程序

[复制链接]
发表于 2004-8-4 15:39:37 | 显示全部楼层 |阅读模式
int fd;
in nread;int buffer[1024]={0};
fd=open(filename,O_RDONLY);
while((nread=read(fd,buffer,sizeof(buffer)))>0);
printf("%S\n",buffer);
exit (0);



执行之后没反应,帮忙看一下,谢谢了先!!!
发表于 2004-8-4 16:02:20 | 显示全部楼层

回复: 关于c的一个小程序

最初由 dragon9876 发表
int fd;
in nread;int buffer[1024]={0};
fd=open(filename,O_RDONLY);
while((nread=read(fd,buffer,sizeof(buffer)))>0);
printf("%S\n",buffer);
exit (0);



执行之后没反应,帮忙看一下,谢谢了先!!!

我的天啊~~~你简直就是在强奸C语言啊~~~
发表于 2004-8-4 16:07:31 | 显示全部楼层
1、打开文件之后要检查一下文件指针是不是null,如果是的,打开失败。
2、while((nread=read(fd,buffer,sizeof(buffer)))>0);你想干嘛?如果读取文件内容成功,就再次读取?一直读到文件的最后一段?可是如果你的库函数支持一直读取文件,哪怕已经读完了,那么:死循环。
3、printf("%S\n",buffer);你这个写法,不是显示出buffer的内容,而是把buffer的第一个地址以字符方式显示出来。

大哥,拜托,你的程序写得太惊险啦,比好莱坞大片还精彩;)
 楼主| 发表于 2004-8-4 16:33:26 | 显示全部楼层

^_^超新手

没办法不会啊!
谢谢了
前一个是明白了。我怎样才能输出我从文件读入的字符串呢?
发表于 2004-8-4 17:05:55 | 显示全部楼层
char buffer[BUFSIZE];
...
printf("%s\n", buffer);
发表于 2004-8-4 17:08:16 | 显示全部楼层
我觉得,如果buffer是char型的数组,printf("%s",buffer);应该可以把buffer所指向的字符块都输出的吧。请指正。

最初由 Sworder 发表

3、printf("%S\n",buffer);你这个写法,不是显示出buffer的内容,而是把buffer的第一个地址以字符方式显示出来。

大哥,拜托,你的程序写得太惊险啦,比好莱坞大片还精彩;)
发表于 2004-8-4 17:36:46 | 显示全部楼层
需要注意,%s和%S是不同的
发表于 2004-8-5 09:02:25 | 显示全部楼层
while是用来判读不能读取的情况,是<0
fprintf(stderr,"error");
printf("%s\n", buffer);
c很注重大小写的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表