对于初学者而言,C语言的输入输出是必备的基础内容,也是学习的重点。本篇文章让我们一起走进C语言学习的基础,输入和输出。
C语言标准输入输出头文件: #include<stdio.h>
本文我们重点介绍scanf,getchar,gets,printf几类函数以及应用。
目录
1.scanf(输入函数)
a.整形输入
b.浮点型输入
c.字符输入
(过滤前导字符)
d.字符串输入
2.printf(输出函数)
a.printf输出规则
b.格式控制符
c.输出控制符
d.转义字符
1.scanf(输入函数) (要求严格的编译器上要求写成scanf_s)
注:在使用此函数输入时,可以使用非输入控制符,但建议永远不要用,引号外除了输入控制符建议不要添加别的。
#include<stdio.h>
int main(void)
{
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
printf("%d %d %d",a,b,c);
return 0;
}
其中的第五行写成了:scanf("%d,%d,%d",&a,&b,&c); 比如要输入1 2 3,只能输入成1,2,3回车
其中的逗号就是非输入控制符。建议不要用,永远不要用,防止造成不必要的麻烦。
a.整形输入
整形输入的输入控制符是%d %ld %lld
int声明 %d long声明 %ld long long 声明 %lld
这里以int 声明为例。
单个整型数字的输入:
#include<stdio.h>
int main(void)
{
int a;
scanf("%d",&a);
return 0;
}
多个整型数字的输入
#include<stdio.h>
int main(void)
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
return 0;
}
或者写成如下形式
#include<stdio.h>
int main(void)
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
return 0;
}
scanf("%d %d %d",&a,&b,&c); %d之间有无空格对于整形数字的输入无影响。
b.浮点数输入
浮点数的输入控制符为%f %lf %llf
float声明 %f double声明 %lf long double声明 %llf
以float 声明为例
单个浮点数输入
#include<stdio.h>
int main(void)
{
float a;
scanf("%f",&a);
return 0;
}
多个浮点数输入类比上述多个整型数字输入。
c.字符输入
char 声明字符 %c 是输入控制符
另外,字符的输入也可以用getchar()函数
对于要求严格的编译器,应写成
char a;
scanf_s("%c",&a,1);
#include<stdio.h>
int main(void)
{
char a;
a=getchar();
return 0;
}
#include<stdio.h>
int main(void)
{
char a;
scanf("%c",&a);
return 0;
}
多个字符的输入
采用过滤前导字符的方式
#include<stdio.h>
int main(void)
{
char a,b,c;
char ch1,ch2;
scanf("%c",&a);
ch1=getchar();
scanf("%c",&b);
ch2=getchar();
scanf("%c",&c);
printf("%c %c %c",a,b,c);
return 0;
}
不采用过滤前导字符的方式(尤其推荐)
#include<stdio.h>
int main(void)
{
char a,b,c;
scanf(" %c %c %c",&a,&b,&c);
printf("%c %c %c",a,b,c);
return 0;
}
用空格来帮助解决,scanf里每个%c前面都要有空格。
d.字符串输入
%s 是输入控制符
有空格的输入gets() 要求严格的编译器要求写成gets_s() 推荐使用
#include<stdio.h>
int main(void)
{
char a[10];
gets(a);
printf("%s",a);
return 0;
}
无空格的输入
#include<stdio.h>
int main(void)
{
char a[10];
scanf("%s",a);
printf("%s",a);
return 0;
}
要求严格的编译器要求写成scanf_s("%s",a,10); 加上字符数组大小
多个字符串的输入
#include<stdio.h>
int main(void)
{
char a[10],b[10],c[10];
scanf("%s %s %s",a,b,c);
printf("%s %s %s",a,b,c);
return 0;
}
2.printf(输出函数)
a.printf输出规则
printf(“ ”,);引号里可添加非输出控制符 引号后面加逗号,逗号后面按照前面输出控制符的顺序填上变量。
b.格式控制符
1.减号 -
输出默认右对齐 减号左对齐
#include<stdio.h>
int main(void)
{
printf("%5d\n",1111);
printf("%-5d",1111);
return 0;
}
输出如下
1111
1111
2.加号 +
加号可以加上数字的符号 正数加正号,负数加负号。
#include<stdio.h>
int main(void)
{
printf("%+5d %+5d",1000,-1000);
return 0;
}
输出如下
+1000 -1000
3.空格 与加号类似前面会出现占位符号,只不过正数是空格,负数是负号。
#include<stdio.h>
int main(void)
{
printf("% 5d % 5d",1000,-1000);
return 0;
}
输出如下
1000 -1000
4.数字0 补位
#include<stdio.h>
int main(void)
{
printf("%05d %05d",1000,-1000);
return 0;
}
输出如下
01000 -1000
由此我们明白,符号也有一个占位。
5.#号键 (不常用,在此不做讲解)
6.整型数字 %d 前面的数字表示占位(以上已做展示)
7.浮点数字 %f 前面的m.n表示总占位和精度(小数点也占位)
#include<stdio.h>
int main(void)
{
float a=111111.1111;
printf("%14.2f",a);
}
输出如下(前面有5个空格)
111111.11
c.输出控制符
1.整形 %d %ld %lld
2.浮点型 %f %lf %llf
3.无符号整形 %u
4.指针%p
#include<stdio.h>
int main(void)
{
float a=111111.1111;
float* b;
b=&a;
printf("%p",b);
}
输出如下
000000000061FE14
5.x/X 十六进制无符号整数 x X 控制大小写 %#x %#X(有0x)
#include<stdio.h>
int main(void)
{
int a=111111;
printf("%X %x",a,a);
}
输出如下
1B207 1b207
#include<stdio.h>
int main(void)
{
int a=111111;
printf("%#X %#x",a,a);
}
输出如下
0X1B207 0x1b207
6.%o %#o (不带零 带零的八进制整数)
#include<stdio.h>
int main(void)
{
int a=111111;
printf("%o %#o",a,a);
}
输出如下
331007 0331007
7.%c 字符输出
8.%s 字符串输出
d.转义字符
1.\a 响铃
2.\n 换行
3.\r 回车
(其余不常用 不作说明)
总结:C语言的输入输出,是我们学习一切程序设计的基础。此篇文章是我学习程序设计时的心得体会,难免有错误和不全。希望本篇文章可以对你有所帮助。