C语言输入与输出

由于时常要出来寻找这一方面的内容,所以干脆自己写一个,方便自己以后遗忘复习,同时也为经常陷入同样问题的友友们提供一下帮助。

 输入

1:scanf

//需要加对返回值的说明

int scanf(const char *format, ...);//函数原型

        scanf() 是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。(在VS这个IDE中,如果不进行一些特殊的处理,那么就应该写成scanf_s,至于怎么特殊处理,CSDN中有很多博主讲过了,我就不赘述了)(简单来说从小黑框中读数据)。一般来讲,我们使用scanf的方法是     (如下)        

scanf("%d",&x);

当然也可以同时输入多个(如下)

scanf("%d %c %s",&a ,&b,c);

给大家一个温馨提示,多个占位符之间不要加逗号了,这样你在缓冲区输入数据的时候也不用加逗号,节省麻烦,减少错误

C语言有各种各样的占位符(又叫格式控制符),比如%d 代表整数,详情在这里不加赘述,大家可以参考这个博主的文章,占位符比较全面     :【C语言】常用占位符的总结_c语言占位符_alexhuge的博客-CSDN博客

 scanf我主要想讲的是对于字符串的输入,正常来讲

scanf("%s",c);

c可以是你自己定义的一个字符数组或者字符指针,当然这两个东西本质上来讲是一样的当遇到回车,但是使用scanf输入字符串时遇见空格和tab键会自动在字符串后面添加’\0’,但是回车,空格和tab键仍会留在输入的缓冲区中,也就是遇见这几个

and the most important things 不要忘记&一定不要忘记&,一定不要(!)

2:getchar

int getchar(void);

看名字就知道,这是一个专门用来输入字符的函数,毕竟有一个char,常言道,术业有专攻,他和scanf专门输入字符还是有区别的:

1:getchar一次只能输入一个字符

2:getchar输入的字符可以包括空格和换行符,而scanf在遇到空格和换行符时会停止读取。(所以用循环读取字符是一定要认真设定循环条件,不然有可能一个字符就是‘\n’或者‘ ’(我是一个空格)

3:getchar不需要格式控制符,而scanf需要根据输入的类型使用相应的格式控制符。

3:   gets

char *gets(char *str);

gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。(数据溢出是一个很严重的问题,一定要努力避免)。但是他可以输入空格,于是通过这样的操作

//I am a little pig
char ch[50];
gets(ch);

就可以完整的进入ch,不会拦腰折断。并且使用gets()可接受回车键之前输入的所有字符,并用’\0’替代 ‘\n’。下面与scanf进行一下对比。

#include <stdio.h>
int main()
{
    char str1[20], str2[20];
    gets(str1);
    scanf("%s", str2);
    printf("str1:%s\n", str1);
    printf("str2:%s\n", str2);
    return 0;
}

输出结果就是这个样子的

4:fgets

char *fgets(char *str, int n, FILE *stream);

这是一个文件操作函数,本来不应该出现在这里,但是,即使不进行文件操作,这个函数也可以用,而且十分安全,输入到了设定的100个字符串就会停止,不会造成数据溢出的情况

char *ch;
fgets(ch,100,stdin);

这个函数的意义就是从指定的流中输入一定长度的字符串,缓冲区也是一种流,所以可以使用这个函数。

输出

1:printf()函数

int printf ( const char * format, ... );

printf()函数是C语言标准输出函数,用于将格式化后的字符串输出到标准输出(对应终端的屏幕)。没有什么特殊的地方,就是需要记好各种各样奇奇怪怪的占位符(请回去看讲scanf的地方)。

2:putchar()函数

int putchar(int character);

该函数的目的是将一个字符串输出到终端。character可以是字符型变量、整型变量、字符型常量、表达式或者转义字符,但只能表达单个字符。将写入的字符作为 unsigned char 类型返回,如果发生错误,则返回 EOF

3:puts()函数

int puts(const char *string);

传入一个字符串(也可传入一个字符串指针,会从指针所指的地方输出到结尾,因此可以进行移动,比如  str+2)。如果成功,它返回一个非负值,表示输出的字符数(不包括空字符)。如果发生错误,它返回EOF(-1)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值