• 一、简单输入输出函数
  • 二、putchar函数
  • 三、puts函数
  • 四、gets函数
  • 五、getchar函数


一、简单输入输出函数

  • 输入输出的英文是Input/Output(简称IO)。
  • C语言标准函数库中,提供了一系列的输入输出函数,包括:单个字符、单行文字、以及各种类型混合的格式化输入输出函数等。
  • 所有标准输入输出函数,都由stdio.h这个头文件提供,因此在调用前必须先包含这个头文件。
  • stdio可以理解为:std就是标准的英文(standard),io就是输入输出的英文(Input/Output),合起来就是标准输入输出函数的头文件。

二、putchar函数

  • putchar函数:将指定的(表达式的值所对应的)字符输出到标准输出终端(屏幕)上。
  • 函数格式:int putchar( int c );
  • 你给这个函数代入一个整数,打印出来的就是对应的ASCII表内对应的字符。就如同代入你的学号,打印出来的是姓名一样。
  • 例如:putchar(‘a’+3);打印的结果是d,是一个字符而不是数值。a的ASCII码是97,加3是100,在ASCII码表中对应的字符就是d。
  • 例如:putchar(99);打印的结果是c,代入一个数字打印出的是一个字符。
  • 与printf的等价关系:putchar(x);等价于printf("%c",x);
//表达式包括:
//常量、变量、运算结果和函数返回值。
int main()
{
	int n = 75,m=16;
	putchar(112-32);//97 - 65 = 32
	putchar(n);
	putchar(m * 4 + printf("abcdefg张三峰:%d\n", m));
	putchar(10);//常量 '\n'
	return 0;
}

三、puts函数

  • puts函数用来向标准输出终端(屏幕)输出一个字符串并换行。
  • 函数格式:int puts( const char *str);
  • puts 意思是:put a string。
  • 与printf的等价关系:puts(x);等价于printf(“%s\n”,x);
int main()
{//negative:负数
	int n = 'a';
	//putchar(n);
	//int m = "abc"; 
	char s[] = "abcdefgsfsdf";//字符串变量
	n = puts("abcffg");//字符串常量
	puts(s);//字符串变量
	printf("Hello, 吕鑫老师!");	//没有换行
	puts("Hello,吕鑫老师!");	//有换行
	printf("Hello, printf!\n");	//手工加入换行
	puts("Hello,puts!");			//自带换行

	char str[] = "This is an puts function\n";
	puts(str);
	printf("%s\n", str);
	puts("This is an puts function");
	printf("%s\n","This is an puts function");
	printf("n=%d", n);
	printf("n=%d", 888);
	
	return 0;
}

四、gets函数

  • gets函数从标准输入流中读出一行文字,读出回车符’\n’之后结束读取。
  • 程序员应该申请的缓冲区数组的空间足够大,以便在执行读操作时不发生溢出。
  • 在VS中废弃了标准版gets,而必须使用get_s安全版
  • 函数格式:char *gets( char *buffer );
  • gets(x)函数与scanf("%s",x)相似,但不完全相同。
  • 使用scanf("%s",s) 读取的一行文字中不包含回车符,而gets函数读取的一行文字是包含回车符的。
//safe
int main()
{
	char s[20];
	printf("请输入20以内任意多个字符:");
	gets(s);

	//scanf("%s", s);

	//gets_s(s,sizeof(s)); 		//代替scanf("%s",s);
	//scanf_s("%s", s, sizeof(s));//输入过多会放弃录入
	puts("你输入的是一行文字:");
	puts(s);	//将整个字符串输出
	return 0;
}

五、getchar函数

  • getchar函数从标准输入流里读取下一个字符
  • getchar函数的返回值是int类型,返回的是一个字符对应的ASCII码数值
  • 当程序首次调用getchar时,或者说当标准输入流(stdin)内为空时,程序阻塞在那就等着用户按键
  • 用户输入的字符被存放在标准输入流中,直到用户按回车为止,包括回车所有的输入的字符都被存入了标准输入流中
  • 之后每次调用getchar函数时,总是从流中读入一个字符。直到回车符’\n’被读出之后,标准输入流就空了
  • getchar的特点是缓冲不空就一直顺次读取,缓冲空了再调用getchar就等待录入
  • 函数格式:int getchar();
  • x=getchar();与scanf(“%c”,&x)是等价的
int main()
{//getchar的特点是缓冲不空就一直顺次读取,缓冲空了再调用getchar就等待录入.
	printf("请输入5个字符:");
	char c;
	c=getchar(); 	//可以替换为:c=getchar();
	putchar(c);		//每接收到一个就立即输出出来

	c = getchar();
	putchar(c);

	c = getchar();
	putchar(c);

	c = getchar();
	putchar(c);

	c = getchar();
	putchar(c);

	c = getchar();
	putchar(c);

	puts("输入了5个接收了6次,最后一个是换行符!");
	return 0;
}