c语言的输入输出格式

包括int,float,double,char,struct,int*,float*,double*,char*,数组,以及采用typedef自定义数据类型 谁会啊???求助大神!!!!!

在C语言中,输入使用的是scanf函数,scanf函数的格式为scanf(格式控制,地址列表),如scanf("%d"&a)。
输出使用的是printf()函数,printf函数的格式为printf(格式控制,输出表列),如printf("%d\n",a)。在输出时可以在"%"和字母之间插进数字表示最大场宽。可以根据需要输出数字的位数来决定“%”前的数值。
如:%3d表示输出3位整型数,
不够3位右对齐。
%9.2f
表示输出场宽为9的浮点数,
其中小数位为2,
整数位为7,小数点占一位,
不够9位右对齐。
%8s
表示输出8个字符的字符串,
不够8个字符右对齐。
扩展资料
C语言输入输出时的规则:
一、格式说明符个数与输入数据个数不相等的情况:
当我们输入数据时,只要没有按回车键,所输入的数据都还存放在缓冲区,并没有存入变量中。按【Enter】键后,scanf()函数才会从缓冲区中取走数据。缓冲区是一个先进先出的队列,即取走数据的时候,遵循先输入的数据先取走的原则。
scanf函数的格式说明符有几个就要取几次数据,只要碰到格式说明符就必须把数据取走,至于是不是要把取走的数据存放起来,就得看数据列表中的数据个数。没取完的数据继续留在缓冲区中。
二、宽度输出的情况:
1、在%和格式字符之间加入一个整数来控制输出数据所占宽度
2、在%和格式字符f之间加入一个“整数1. 整数2”来控制输出数据的格式。
整数1:整个输出数据占的总宽度
整数2:输出实数的小数部分的个数
注意:先用整数2处理小数部分,再用整数1处理整个数据,包括已处理好的小数部分
三、宽度输入的情况:
宽度输入指的是在%和格式说明符d之间加入一个整数。如:scanf("%2d",
&x);
注意:
1、%d与%1d是不同的,它们具有不同的含义。
2、
当宽度小于数据的实际宽度时,截取指定宽度的部分作为一个数进入缓冲区,再将剩余部分作为另一个数放入缓冲区。
参考资料来源:百度百科——scanf
百度百科——printf()
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-28
scanf("%d",&a),第一个参数是格式化字符串,第2个参数是格式化字符串中第一个变量的地址,第3个是第二个变量的地址,以此类推
printf("%d",a)类似,只是第2个开始的参数是变量本身,而不用取他们的地址
第2个回答  2014-11-08
用typedef再自定义数据类型也还是基本数据类型,不会变的.
int:%d
float:%f
double:%lf
char:%c
void*:%p
我看你是没完全懂或是没学struct,指针,typedef和数组.它们再变化,都还是基本数据类型,如:
struct A
{
int a;
float b;

};
你如果要输出A实例化出的对象,一定是要指定是输出a还是b,如果是a那a就是int型的,那就用%d输出,b同理.
要用指针输出它指向的变量,在指针前加个星号就行了,输出控制符和它指向的数据类型一样.追问

嗯嗯,谢谢了。。。。
那可不可以总结一下数据结构中编写代码时,c文件的基本结构,比如头文件包含,宏定义等。

追答

这有什么基本结构的?这就要看你要写啥了.如果你要写多文件程序那用得上头文件,如果不是多文件的加一个stdio基本上就够用了.宏的话一般就是给函数参数用的.如:
# define pHead p

void init(void *pHead); //声明
void init(void *p) //定义
{
//函数实现......

}
这个个例子还是不够好.总之意思就是当一个变量名不能概括它的用处的时候,用宏就可以了.

本回答被网友采纳
第3个回答  2014-11-08
你想问什么呢。
相似回答