C语言中的基本输入和输出

学习资料:
C语言教程
c语言scanf()停止接受输入及scanf("%c",&c)吃掉回车或者空格字符的问题

格式化输入函数scanf
  • 即按照格式字符串的格式,从键盘上把数据输入到指定的变量之中。Scanf函数的调用的一般形式为:
 scanf(“格式控制字符串”,输入项**地址**列表); 
  • 地址表项中的地址给出各变量的地址,地址是由地址运算符”&”后跟变量名组成的。
  • 格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。scanf 函数中格式字符串的构成与printf函数基本相同,但使用时有几点不同:
    (1)格式说明符中,可以指定数据的宽度,但不能指定数据的精度。
    (2)输入long类型数据时必须使用%ld,输入double数据必须使用%lf或%le。
    (3)附加格式说明符”*”使对应的输入数据不赋给相应的变量。而在printf中用来控制通过参数控制输出宽度和精度。例如:
scanf(%*d%d%*d”,a[i]); //过滤读取,只读取第二个输入放到a[i]中
printf( "weight=%*.*f\n" ,width,precision,weight); // 灵活控制输出宽度和精度
  • scanf() 函数返回成功读入的项目的个数。如果它没有读取任何项目(比如它期望接收一个数字而您却输入的一个非数字字符时就会发生这种情况),scanf()返回0。当它检测到“文件末尾”(end of file)时,它返回EOF(EOF在是文件stdio.h中的定义好的一个特殊值,一般,#define指令将EOF的值定义为-1)。
  • scanf()函数接收输入数据时,遇空格、回车、tab;宽度结束;非法输入结束一个数据的输入(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束),但是结束符仍留在缓冲区中。例如:
	char a[N];
    char b[N];
    scanf("%s",a);	// 输入abc def
    gets(b);
    printf("%s",a);
    puts(b);	// 输出abc def
  • 接收的字符串结束之后都会自动在字符串的末尾追加’\0’作为字符串结束符。
字符输入函数getchar
  • getchar函数的功能是接收用户从键盘上输入的一个字符。其一般调用形式为:
getchar();
  • getchar函数的功能是接收用户从键盘上输入的一个字符,这些字符系统中对应的ASCII值都是非负的,但也可能是负值,即返回EOF。其一般调用形式为:
char c;  /*定义字符变量c*/
c=getchar(); /*将读取的字符赋值给字符变量c*/
  • 在终端输入字符时并非输入一个字符就会返回,而是在遇到回车换行前,所有输入的字符都会缓冲在键盘缓冲器中,直到回车换行一次性将所有字符按序依次赋给相应的变量,在这里一定要注意最后一个字符即’\n’,该字符也会赋给一个相应的变量(当然这要你定义的用来接收字符的变量数比你输入的可见字符多一才可以)。
字符串输入函数gets
  • 从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间,该函数原型为:
#include<stdio.h>
char *gets(char *str);
  • 使用 gets() 时,就算输入的字符串中有空格和Tab也可以直接输入,只把换行符作为结束分隔符;此外,系统会将最后“敲”的换行符从缓冲区中取出来,然后丢弃,所以缓冲区中不会遗留换行符;

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值