C语言(常规输入输出)

  1. 每次一个字符的输入输出

输出:
#include <stdio.h>
int putchar(int c)
功能:往终端上打印一个字符c
参数:c 要打印的字符
返回值:成功返回输出的字符c,失败返回EOF(因为0 ~ 255基本都有对应的字符)

输入:
#include <stdio.h>
int getchar(void);
功能:从终端上读一个字符
参数:void代表没有参数;
返回值:成功返回输出的字符c,失败返回EOF(-1)
0~255
unsigned char 0~255
EOF -1
ctrl + d

  1. 每次一行字符的输入输出

输出:
int puts(const char *s);
功能:往终端上打印一行字符
参数:s 要输出的字符串
返回值:成功返回字符的个数(注意加上\0,也就是返回的字符数+1),失败返回EOF
特点:
1、自带换行符
2、遇到第一个\0即结束 (后面无论是否还有字符都不打印)
\0 是字符串的结束标志,字符串常量自带\0

输入:
char *gets(char *s);
功能:从终端上一次读多个字符(一串字符)
参数:s读到数据存放的位置
返回值:成功是读到数据的地址,失败
注意:
1、输入数据,注意不要越界(否则报栈溢出错误)
2、有多少空格原样读取
3、注意s要用数组,而不是指针

  1. 格式化输入输出

输出:
man 3 printf
#include <stdio.h>
int printf(const char *format, …);
功能:向终端上格式化输出
参数:“控制格式”
变量列表
返回值:成功返回输出的个数

printf格式符:
格式符: 作用

i,d 十进制整数
x.X 十六进制无符号整数
o 八进制无符号整数
u 无符号10进制正数
c 单一字符
s 字符串
e,E 指数形式浮点小数
f 小数形式浮点小数 (默认只输出小数点后七位)
g c和f中较短一中
%% 百分号本身

Printf附加修饰符
+/-m.n
附加修饰符 作用

m 输出数据域宽,数据长度<m,左补空格;否则按实际输出。
.n 对实数指定小数点后位数(四舍五入) 对字符串,指定实际输出位数
‘-’ 输出数据在域内左对齐(缺省右对齐)
‘+’ 指定在有符号的正数前显示正号(+)
0 输出是数据指定左面不适用的空位置自动填0
‘#’ 在八进制和十六进制数前显示前导0,0x
l 在d,o,x,u前,指定输出精度为long型 (默认只输出小数点后七位)
l 在e,f,g前,指定输出精度为double型 (默认只输出小数点后七位)

输入:

#include <stdio.h>
int scanf(const char *format, …);
功能:从终端上格式输入
参数:“控制格式”
变量地址列表
返回值:成功返回输入的个数,失败0

关于scanf函数,可以经常使用的编码习惯

① 使用scanf进行数据输入时,最好在其后面添加上输入判断,可以避免程序在开始就出现错误,还继续往后执行,做无用功,浪费资源。
判断的大概思路如下:
int a,ret; //设置一个 ret变量接收scanf的返回值
ret= scanf(“%d”,&a); //进行输入,并接收返回值
if(ret<= 0)
{
printf(“input error ret = %d”,ret) ;
return -1;//函数后面的程序不再执行,退出当前函数 //可以在scanf输入前打印规定一下,下面scanf输入需要输入的格式,
可以通过对打印出来的ret值进行判断
ret = -1: 输入错误,可能是输入的数据类型不匹配,
ret = 0;未能输入数据,输入数据的时候发生了意外
也可以直接在if里面再设置if-else的嵌套判断,把对应的原因打印出来

getchar();
scanf函数输入失败时
输入的数据最好用getchar接收一下,否则容易在循环输入系统,中造成死机式的bug
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值