第三篇:C语言的输入输出函数

来源:互联网 发布:plc用c语言编程 编辑:程序博客网 时间:2024/05/19 22:24

有关于java的输入输出函数:

image

C语言的输出函数:

我们先来看一下printf函数
  • printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。

  • printf()函数的调用格式为: printf(“<格式化字符串>”, <参量表>)。

  • 格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

  • 4,作用:在c语言中产生格式化输出的函数(定义在 stdio.h 中),其向终端(显示器、控制台等)输出字符。

*备注:*

c语言的双精度小数点只能保存到后6位

如:

 #include<stdio.h>#include<string.h> 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; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

C语言的输入函数:

函数名: scanf

功 能: 执行格式化输入

scanf()函数是格式化输入函数, 它从标准输入设备(键盘) 读取输入的信息。其调用格式为:scanf(“<格式化字符串>”, <地址表>);格式化字符串包括以下三类不同的字符;

  • 1 格式化说明符: 格式化说明符与printf()函数中的格式说明符基本相同。

  • 空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。

  • 非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。地址表是需要读入的所有变量的地址, 而不是变量本身。这与printf()函数完全不同, 要特别注意。各个变量的地址之间同“,”分开。

例1

int i,j;scanf(“%d, %d”, &i, &j);
  • 1
  • 2

上例中的scanf()函数先读一个整型数, 然后把接着输入的逗号剔除掉, 最后读入另一个整型数。如果“,”这一特定字符没有找到, scanf()函数就终止。若参数之间的分隔符为空格, 则参数之间必须输入一个或多个空格。

对于字符串数组或字符串指针变量, 由于数组名和指针变量名本身就是地址, 因此使用scanf()函数时, 不需要在它们前面加上”&”操作符。

main(){  char *p, str[20];  scanf(“%s”, p);  scanf(“%s”, str);  printf(“%s\n”, p);  printf(“%s\n”, str);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

可以在格式化字符串中的“%”各格式化规定符之间加入一个整数, 表示任何读操作中的最大位数。

如例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);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

运行该程序, 输入一个字符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);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

c语言的输入输出函数相对而言是非常简单的.

利用C打印水仙花:

利用C打印出0-1000之间所有的”水仙花数”

所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

代码如下:

Markdown

打印结果:

Markdown