printf()函数入栈
printf函数参数的入栈顺序是从右到左(888先入栈,接着666入栈)。所以从栈里面读取一个数据时,只会读取最后入栈的数据,也即666
输出结果为666
变量输出格式(变量=%d)
可直接在printf中传入具体值(两种方法)
输入小数:%lf (lf 代表 long float-point),定义为double类型变量输出用%lf(%f什么时候用?)
变量输入scanf
①scanf 可以接收用户的输入,转化成一个数值保存在变量 a 中
②字符串内不要加多余的空格、或其他字母和标点。初学者往往因为在双引号内加了多余的字符,而得不到正确的结果。
注:如果非要实现“请输入”类似的提示,可以先用printf打印出提示语句,再用scanf
#include <stdio.h>
int main()
{
double a = 0; // 第一个数
double b = 0; // 第二个数
printf("请输入第一个数: "); // 提示用户输入
scanf("%lf", &a);
printf("请输入第二个数: "); // 提示用户输入
scanf("%lf", &b);
double result = a * b; //计算结果
printf("%.3lf x %.3lf = %.3lf \n", a, b, result);
return 0;
}
虽然char也能表示整数,但是用到scanf,输入变量对应的类型必须是int(直接全部默认为int即可)
③变量输入,一定要加上&符号。输入小数:scanf("%lf", &f)
④使用scanf报错:https://blog.csdn.net/qq_35370790/article/details/80801699(最直接的方法:把scanf改为scanf_s)
%*4s表示读取一个长度为四个字符的字符串,中间的*表示将读取到的字符串忽略,不赋给变量列表中的变量。
%2d先读取前两个字符 %*4s跳过4个字符 %2d读取两个字符 所以x为12 y为78 y-x=66
1、getchar和get函数区别
getchar从控制台输入输出一个字符
char ch=getchar();
putchar('A');
这里的输入和下面的字符串输入区别
get函数从控制台输入字符串
char line[64] = {0};
gets(line);
控制台输入若干字符后,按回车键完成输入,从而将输入的字符串存入line中
2、多行输入(while+get函数)
while(1)
{
// 获取一行
char line[64] = {0};
gets(line);
...//对line进一步操作
}
连续输入5行内容
//定义输入的结构体
struct Name
{
char val[32];
};
for(int i=0;i<5;i++)
{
printf(">");//用于输入提示
gets(name[i].val);//已经在main中定义Name name[128]
}
gets本身没有换行的功能,这里是for循环实现了换行