(1)putchar (ch) // 输出字符
putchar('a'); // 输出为:a 没有换行
2)getchar(); 等价与scantf 都是从终端获取一个字符串
ch = getchar();
scanf("%c",ch);
(1)scantf()从键盘读取字符串
'缺点:
'(1)遇到 空格 就会提前结束读取,
'(2)如果存放读取字符的空间不足,继续向后存放,会造成内存污染
- 申请地址为5,但是输入了超过5个字节,遇到 \n 才结束 就会把后面的数据都存进去,则造成内存污染,改了别人的数据
char ch[5] = " ";
scanf("%s",ch);
printf("%s",ch);
输入:dsdsdasdasd 输出 dsdsdasdasd 但是我们字符串长度只
(3)gets(); 一个库函数,从键盘读取字符串
' 解决问题:gets遇到\n结束., 但是遇到空格不结束读取空格
' 存在问题:gets也会造成内存污染
' ()里面的参数要的是存放读取字符串的地址
(4) fgets() : 库函数: 从键盘读取一个字符串
char num[128];
fgets(num,sizeof(num),stdin);
fgets 从 stdin(标准输入 -- 键盘) 读取字符串到num数组中
最大读取sizeof(num)-1个字符
优点:fgets相对于scanf和gets不会污染,(安全)
缺点:fgets会将 \n 读取
问题: dasdad 下面会产生一个空行
代码习惯: char buf[128] = " "; // 里面填写2的n次方
(5) fputs (buf,stdout) // 字符数组的输出
// 第一个参数,数组首元素地址 stdout标准输出(屏幕)(还可以输出到文件) (没有换行)
puts(buf)
// 数组首元素地址,有换行 ,自动加换行
(6)产生随机数
srand(time(NULL)); // 设置随机数种子 随机数种子可以填一个数,但是保证每一次不同就填时间
int a = rand(); // 获取随机数