- 一、简单输入输出函数
- 二、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;
}