C语言的输入输出函数及其用例测试
于亚豪的博客地址
NDK探究之旅《一》——对jni和NDK的认识
NDK探究之旅《二》——C语言的基本认识
有关于java的输入输出函数:
C语言的输出函数:
我们先来看一下printf函数
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。
格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
4,作用:在c语言中产生格式化输出的函数(定义在 stdio.h 中),其向终端(显示器、控制台等)输出字符。
备注:
c语言的双精度小数点只能保存到后6位
如:
intmain()
{
char c,s[20], *p;
inta=1234, *i;
floatf=3.141592653589;
doublex=0.12345678987654321;
p="How do you do";
strcpy(s,"Hello, Comrade");
*i=12;
c='\x41';
printf("a=%d\n", a); /*结果输出十进制整数a=1234*/
printf("a=%6d\n", a); /*结果输出6位十进制数a= 1234*/
printf("a=%06d\n", a); /*结果输出6位十进制数a=001234*/
printf("a=%2d\n", a); /*a超过2位, 按实际值输出a=1234*/
printf("*i=%4d\n", *i); /*输出4位十进制整数*i= 12*/
printf("*i=%-4d\n",*i); /*输出左对齐4位十进制整数*i=12*/
printf("i=%p\n", i); /*输出地址i=06E4*/
printf("f=%f\n", f); /*输出浮点数f=3.141593*/
printf("f=6.4f\n", f); /*输出6位其中小数点后4位的浮点数f=3.1416*/
printf("x=%lf\n", x); /*输出长浮点数x=0.123457*/
printf("x=%18.16lf\n", x);/*输出18位其中小数点后16位的长浮点数x=0.1234567898765432*/
printf("c=%c\n", c); /*输出字符c=A*/
printf("c=%x\n", c); /*输出字符的ASCII码值c=41*/
printf("s[]=%s\n", s); /*输出数组字符串s[]=Hello, Comrade*/
printf("s[]=%6.9s\n", s);/*输出最多9个字符的字符串s[]=Hello, Co*/
printf("s=%p\n", s); /*输出数组字符串首字符地址s=FFBE*/
printf("*p=%s\n", p); /* 输出指针字符串p=How do you do*/
printf("p=%p\n", p); /*输出指针的值p=0194*/
getch();
retunr0;
}
C语言的输入函数:
函数名: scanf
功 能: 执行格式化输入
scanf()函数是格式化输入函数, 它从标准输入设备(键盘) 读取输入的信息。其调用格式为canf(“<格式化字符串>”, <地址表>);格式化字符串包括以下三类不同的字符;
1 格式化说明符: 格式化说明符与printf()函数中的格式说明符基本相同。
空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。地址表是需要读入的所有变量的地址, 而不是变量本身。这与printf()函数完全不同, 要特别注意。各个变量的地址之间同“,”分开。
例1
int i,j;
scanf(“
上例中的scanf()函数先读一个整型数, 然后把接着输入的逗号剔除掉, 最后读入另一个整型数。如果“,”这一特定字符没有找到, scanf()函数就终止。若参数之间的分隔符为空格, 则参数之间必须输入一个或多个空格。
对于字符串数组或字符串指针变量, 由于数组名和指针变量名本身就是地址, 因此使用scanf()函数时, 不需要在它们前面加上”&”操作符。
main()
{
char *p, str[20];
scanf(“%s”, p);
scanf(“%s”, str);
printf(“%s\n”, p);
printf(“%s\n”, str);
}
可以在格式化字符串中的“%”各格式化规定符之间加入一个整数, 表示任何读操作中的最大位数。
如例2中若规定只能输入10字符给字符串指针p, 则第一条scanf() 函数语句变为scanf(“s”, p);程序运行时一旦输入字符个数大于10, p就不再继续读入, 而后面的一个读入函数即scanf(“%s”, str)就会从第11个字符开始读入。
实际使用scanf()函数时存在一个问题, 下面举例进行说明:当使用多个scanf()函数连续给多个字符变量输入时
例如:
main()
{
char c1, c2
scanf(“%c”, &c1)
scanf(“%c”, &c2)
printf(“c1 is %c, c2 is %c”, c2, c2)}
运行该程序, 输入一个字符A后回车 (要完成输入必须回车), 在执行scanf(“%c”, &c1)时, 给变量c1赋值”A”
但回车符仍然留在缓冲区内, 执行输入语句scanf(”%c”, &c2)时, 变量c2输出的是一空行, 如果输入AB后回车, 那么输出结果为: c1 is A, c2 is B。要解决以上问题,
可以在输入函数前加入清除函数fflush()。修改以上程序变成:
#include<stdio.h>main()
{
char c1, c2;
scanf(“%c”, &c1);
fflush(stdin);
scanf(“%c”, &c2);
printf(“c1 is %c, c2 is %c”, c1, c2);
}
c语言的输入输出函数相对而言是非常简单的.
利用C打印水仙花:
利用C打印出0-1000之间所有的"水仙花数"
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
代码如下:
打印结果:
博客地址:
让心,在阳光下学会舞蹈
让灵魂,在痛苦中学会微笑
—终端研发部—
如果你觉得此文对您有所帮助,欢迎入群 QQ交流群 :232203809
微信公众号:终端研发部
(欢迎关注学习和交流)
(欢迎关注学习和交流)