当前位置: 首页> 财经> 金融 > 上海专业网站建设服务_青海疫情最新消息_海南网站网络推广_如何让百度快速收录新网站

上海专业网站建设服务_青海疫情最新消息_海南网站网络推广_如何让百度快速收录新网站

时间:2025/7/9 21:18:03来源:https://blog.csdn.net/qq_22111417/article/details/143436773 浏览次数:0次
上海专业网站建设服务_青海疫情最新消息_海南网站网络推广_如何让百度快速收录新网站

按行输入

下列函数用来输入一行:

从标准输入读取一行,s存放输入内容的缓冲区的首地址,并没有指定缓冲区的大小,如果用户输入超出缓冲区的大小,很容易溢出。

  • char * gets(char *s);  //不建议使用,有可能引起缓冲区溢出

通过一个指定的流stream,读取一行字符串,保存到S指向的缓冲区,指定缓冲区的大小。

  • char *fgets(char *s,int size,FILE *stream);

(1) 成功时返回s,到文件末尾或出错时返回NULL;

(2) gets 不推荐使用,容易造成缓冲区溢出;

(3) 遇到'\n'或已输入size-1(字符串以\0结尾的)个字符时返回,总是包含‘\0’;

tps:在C语言中,'\0'是空字符,用作字符串的结束符

fgets - 示例#define N 6char buf[N];
fgets(buf,N,stdin);
prinft("%s",buf);

假设键盘输入分别是:abcd<回车> abdcef<回车>  buf中的内容是?

按行输出

下列函数用来输出字符串:

puts、fputs仅把缓冲区的字符串写到流里面,至于字符串是否包含换行符,无所谓,一直输出直到遇到结束符('\0'),结束符不写到流里面。

int puts(const char *s);  //默认只能向标准输出流使用

int fputs(const char *s,FILE *stream);

  • 成功时返回输出的字符个数;出错时返回EOF;
  • puts将缓冲区s中的字符串输出到stdout,并追加'\n';
  • fputs将缓冲区s中的字符串输出到stream
fputs-示例:打印“hello word”之后,追加‘\n’符光标移动到下一行。FILE *fp;
char buf[] = "hello world";
if((fp = fopen(argv[1],"a")) == NULL)
{perror("fopen");return -1;
}
fputs(buf,fp);

练习

如何统计一个文件文件包含多少行?

1、fgetc?判断是不是换行符'\n',多少个换行符就有多少行,效率低。

2、fgets?一次读取一行,但是遇到size-1,也会返回,所以并不能保证每次读取是完整一行。那么如何保证他读取的是一行呢?判断存放内容的buff,结束符('\0')的前一个位置是否是'\n'。

 strlen(buf):计算buf的长度,长度是结束符的下标,如果有换行符结束符的前一个位置。

关键字:上海专业网站建设服务_青海疫情最新消息_海南网站网络推广_如何让百度快速收录新网站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: