目录
1.关于库函数scanf的相关介绍
2.多组数据的输入
2.1 EOF法
2.2 计数法
2.3 特殊值法
3.如何停止输入
1.printf() 用于格式化输出到屏幕。printf() 函数在 "stdio.h" 头文件中声明。
2.关于返回值:这个函数的返回值是其打印输出功能的附带用途,在检查输出错误时可能会用到。
#include
int main()
{
int bph2o = 212;
int rv;
rv = printf("%d F is water's boiling point.\n", bph2o); //把printf返回值赋给rv
printf("%d", rv);
return 0;
}
//输出结果为:212 F is water's boiling point.
32 //32是上一个输出的所有字符数,包括空格和不可见换行符'\n'
3.printf中" "中的内容换行会被报错。
解决方案:
①使用多个printf函数,注意不要用\n,这样下一个printf内容就能接续上去。
②用反斜杠(/)和Enter(或Return)键组合来断行。
③ANSI C引入的字符串连接。在两个用双引号括起来的字符串之间用空白隔开,C编译器会把多个字符串看成一个字符串。因此,下面三个形式是等效的:
printf("hello, young lovers, wherever you are.");
printf("hello, young" "lovers " ", wherever you are.");
printf("hello, young lovers"
", wherever you are.");
注:"young""lovers"等于"younglovers"
只有"young" "lovers"才等于"young lovers"。
1.描述:从标准输入 stdin 读取格式化输入。
2.声明:说明scanf返回值是int类型的数据。
int scanf(const char *format, ...)
3.关于返回值:
①如果成功,该函数返回成功匹配和赋值的个数。
②如果到达文件末尾或发生读错误,则返回 EOF。
4.scanf在读取字符串的时候,遇到空格便不再读取。
1.先看代码:
#include
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
//while一定不要有分号,否则你就会发现你无限输入但并不输出
{
printf("%d\n",a+b);
}
return 0;
}
2.方法原理介绍:因为在线评测系统的输入数据存放在一个文件中,因此可以通过文件是否结束的方式判断输入的数据是否结束。scanf在读取到文件结束符时,会返回标识EOF(end of life),EOF是一个预定义的常量,等于-1。通过判断scanf的返回值否为EOF决定是否退出循环。
1.先看代码:
#include
int main()
{
int T;
int a;
scanf("%d",&T); //这里T为要输入数据的组数
while(T--) //这里的T每次减1知道为0,结束循环
{
scanf("%d",&a);
printf("%d ",a);
}
return 0;
}
//当然除了while,用for自增也是可以的
#include
int main()
{
int T;
int i;
scanf("%d",&T); //T为你要输入的数据组数
for(int i=1;i<=T;i++) //这里i从1开始,一直输入到你需要的组数T,结束循环
{
int a
scanf("%d",&a);
printf("%d\n",a);
}
return 0;
}
、
2.方法原理介绍:通过循环的方式,先确定你要输入的数据组数,然后循环输入数据直到达到你预先设定的数据组数为止结束循环。
1.先看代码:
#include
int main()
{
int a;
scanf("%d", &a);
while(a != 0) //这里的0是我规定的特殊值,也可以是别的值
{
printf("%d", a);
scanf("%d", &a); //输出后再次输入,继续进入循环
}
return 0;
}
2.方法原理介绍:输入的数据为某个你规定的特殊值的时候,不满足循环条件,停止下一次输入。
1.windows平台,即dos命令窗口:输入CTRL+Z即为文件结束。
注:VS要输入三次这个命令(按一次命令后要按次回车)(目前原因未知)
2.其它平台,如Unix, Linux,Mac等:输入CTRL+D即为文件结束。