博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符输入与输出
阅读量:5262 次
发布时间:2019-06-14

本文共 1148 字,大约阅读时间需要 3 分钟。

1.随机数产生函数rand和srand:rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数 值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。

字符串输入

1.gets函数:gets没有解决缓冲区溢出的问题   gets(variable);

  • 他不检查预留存储区是否能够容纳实际输入的数据。多出来的字符简单的溢出到相邻的内存区。
  • 读字符串直到遇到一个换行字符\n就结束输入,按回车键产生。在读取换行符之前的所有字符时会在这些字符后添加一个空字符\0。

2.fgets函数   fgets(variable,MAX,stdin);

  • 第一个参数是字符数组名,从指定文件中读一个字符串到字符数组中
  • 第二个参数MAX表示最大读入字符数。如果这个参数为n,fgets()就会读取n-1个字符或者读完一个换行符为止,它是会算上换行符的。由这两者最先满足的那个来结束输入,然后在最后加一个/0。
  • 第三个参数表示读哪一个文件。从键盘上读取数据时,可以使用stdin(standard input)作为该参数,这个标识符在stdio.h中定义。
  • 能让使用者指定最大读入字符数。fgets是为了I/O而设计的。
  • 不检查预留缓冲区是否能够容纳用户实际输入的数据。多出来的字符会导致内存溢出,fgets函数改进了这个问题。
  • 由于fgets函数是为读取文件设计的,所以读取键盘是没有gets那么方便。
  • fgets读取到换行符,会把它存储在字符串里,而不像gets()那样丢弃它。

3.scanf函数

  • scanf()函数与gets()函数最大的差别是它们如何决定字符串合适结束。
  • scanf()读取单词,gets所有的字符。
  • 如果设置了宽度,如%10s,scanf()就会读入十个字符或者遇到第一个空白字符。

字符串的输入

1.puts函数  只需要给出字符串参数的地址就行。

  • char str1[];    char *str2;           puts(str1);   puts(str2);

2.fputs()函数

  • fputs()需要第二个参数来说明要写的文件。可以使用stdout(代表standard output)作为参数来进行输出显示,stdout在stdio.h中定义。
  • 与puts()不同的是,fputs ()并不为输出自动添加换行符。
  • fputs(line,stdout)
  • 将line中的字符串什么的写入到文件stdout中。

 

转载于:https://www.cnblogs.com/sjxbg/p/5370245.html

你可能感兴趣的文章
前端05 /js基础
查看>>
[算法模版]莫队
查看>>
[算法模版]斜率优化
查看>>
语法上的小trick
查看>>
CF461B Appleman and Tree
查看>>
CF219D Choosing Capital for Treeland
查看>>
[算法模版]AC自动机
查看>>
CF1207G Indie Album
查看>>
杂七杂八的小笔记本
查看>>
51Nod1709 复杂度分析
查看>>
[算法模版]树形背包
查看>>
51Nod1353 树
查看>>
[算法模板]SOS DP
查看>>
CF1208F Bits And Pieces
查看>>
CF1215E Marbles
查看>>
手把手教你写一个windows服务 【基于.net】 附实用小工具{注册服务/开启服务/停止服务/删除服务}...
查看>>
.net Core 图片验证码 基于SkiaSharp实现
查看>>
fish redux 个人理解
查看>>
java 笔记一些
查看>>
夜晚的岳麓山
查看>>