zoukankan      html  css  js  c++  java
  • 字符输入与输出

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

    字符串输入

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

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

    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中。
    人怂胆子小,手拿大刀跑。
  • 相关阅读:
    ForeignKey 的第二个位置参数on_delete
    我们为什么要用springcloud?
    使用springcloud zuul构建接口网关
    分布式环境 限流解决方案
    Spring Cloud限流思路及解决方案
    SpringBoot初始教程之Redis集中式Session管理
    分布式高并发下全局ID生成策略
    分布式日志收集收集系统:Flume(转)
    深入理解Java类加载器(ClassLoader) (转)
    各类排序算法复杂度比较
  • 原文地址:https://www.cnblogs.com/sjxbg/p/5370245.html
Copyright © 2011-2022 走看看