C语言中的输入输出函数(学习笔记)

c语言中的基本输入与输出函数

1.格式化输入输出函数

1.1printf()函数

大家很熟悉了,这里不多加介绍

1.2scanf()函数

  • 调用格式为:scanf("<格式化字符串>",<地址表>);
  • scanf的返回值
    scanf()函数返回成功赋值的数据项数
    读到文件末尾出错时则返回EOF。
    如:
    scanf("%d%d", &a, &b);
    如果a和b都被成功读入,那么scanf的返回值就是2
    如果只有a被成功读入,返回值为1
    如果a和b都未被成功读入,返回值为0
    如果遇到错误或遇到end of file,返回值为EOF
    且返回值为int型
    空白符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
    非空白符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符

2.非格式化的输入输出函数

2.1puts()和gets()函数

2.1.1puts()函数

  • 头文件为stdio.h
  • puts()函数用来向标准输出设备(屏幕)写字符串并换行
  • 调用格式为puts(s),其中s为字符串变量(字符串数组名或字符串指针)。puts()函数的作用于printf("%s\n",s)相同

例如:

#include <stdio.h>
#include <string.h>
int main(void)
{
	char s[20],* f;
	strcpy(s,"Hello!");
	f="Thank you ";
	puts(s);
	puts(f);
	return 0; 
}

说明

  • (1) puts()函数只能输出字符串,不能输出数值或者进行格式变换
  • (2) 可以将字符串直接写入puts()函数中。如puts("Hello,Tuuu")

2.1.2gets()函数

  • 头文件为stdio.h
  • char * gets(char * str);
  • gets()函数用来向标准输入设备(键盘)读取字符串直到回车结束,不同于fgets,它没有指定num,所以需要注意字符数组str的大小
  • 调用格式为gets(s),其中s为字符串变量(字符串数组名或者字符串指针)。gets()函数的作用于scanf("%s",&s)函数作用类似,使用``scanf(“%s”,&s) 函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符串直到回车为止

2.2putchar()、getch()、getche()和getchar()函数,附fgets函数

2.2.1.putchar()函数

等同于printf("%c",ch)

2.2.2getch()函数、getche()函数

  • 头文件 conio.h
  • 并非标准C中的函数,建议还是使用getchar()
  • int getch(void)当你用键盘输入的时候,屏幕不显示你所输入的字符(不带回显),不需要按回车,程序自动继续进行
  • int getche(void)屏幕显示你所输入与的字符(带回显),不需要按回车,程序自动继续进行

2.2.3.getchar()函数

  • 头文件 stdio.h
  • int getchar(void) 从标准输入stdin读入一个字符,程序等待你输入的时候你可以输入多个字符,回车后程序继续执行。但是getchar实际上制度如第一个字符。
  • 常用在exe中暂停程序。

2.2.4.fgets()函数

  • char * fgets(char * str, int num, FILE * stream);
  • 头文件stdio.h
  • 从流stream中读入最多num个字符到字符数组str中,当遇到换行符的时候,或者读到num-1个字符时候停止。自动加上'\0'空字符结尾

晚点补充一下输入流的问题

猜你喜欢

转载自blog.csdn.net/weixin_43093006/article/details/83064912
今日推荐