Linux C语言:输入输出(printf scanf)

一、数据输出

1、C语言I/O操作由函数实现

#include <stdio.h> 

2、字符输出函数 

格式: int putchar( int c )
参数: c为字符常量、变量或表达式
功能:把字符c输出到显示器上
返值:putchar函数的返回值是参数的ASCLL码值; 

#include <stdio.h>
main()
{ int c;
char a;
c=65; a='B';
putchar(c); putchar('\n'); putchar(a);
}

3、字符输入函数 

字符输入函数getchar
        格式: int getchar( void);
        功能:从键盘读一字符
        返值:正常,返回读取的字符的ASCLL码值;
出错或结束键盘输入,返回-1 (ctrl d) 

#include <stdio.h>
int main()
{ int c;
printf("Enter a character:");
c = getchar();
printf("%c--%d->hex%x\n", c, c, c);
}

4、字符输入输出函数结合使用

#include <stdio.h>
int main( )
{
int c;
printf( "Enter a value :");
c = getchar( );
printf( "\nYou entered: ");
putchar( c );
printf( "\n");
return 0;
}

 二、printf格式输出函数

1、格式

printf(“格式控制串”,输出表)

  • 功能:按指定格式向显示器输出数据
  • 输出表:要输出的数据
  • 格式控制串:包含两种信息

格式说明:%[修饰符]格式字符,用于指定输出格式
普通字符:原样输出 

2、格式字符 

int a=567; printf (“%d”,a);      //567
int a=255; printf(“%x”,a);       //ff
int a=65; printf(“%o”,a);        //101
int a=567; printf(“%u”,a);       //567
char a=65; printf(“%c”,a);       //A

printf(“%s”,“ABC”); //ABC
float a=567.789;printf(“%e”,a);  //5.677890e+02
float a=567.789;printf(“%f”,a);  // 567.789000
float a=567.789;printf(“%g”,a);  // 567.789
printf(“%%”);                    //%

三、printf函数-附加格式说明符

 

1、printf函数-附加格式说明符m.n 

int a=1234;
float f=123.456;
char ch=‘a’;
printf(“%8d,%2d\n”, a, a);
printf(“%f, %8f, %8.1f, %.2f\n”, f, f, f, f);
printf(“%3c\n”, ch);
char a[]=“Hello,world!”
printf(“%s\n%15s\n%10.5s\n%.3s\n”, a, a, a, a, a);

2、printf函数-附加格式说明符0 +

#include <stdio.h>
int a=1234;
float f=123.456;
printf(“%08d\n”, a);
printf(“%010.2f\n”, f);
printf(“%0+8d\n”, a);
printf(“%0+10.2f\n”, f);

 四、scnaf格式输入函数

1、格式

scanf(“格式控制串”,地址表)

  • 功能:按指定格式从键盘读入数据,存入地址表指定存储单元中,并按回车键结束
  • 返值:正常,返回输入数据个数
  • 地址表:变量的地址,常用取地址运算符& 

目前,scanf支持的格式字符很多,如下, 

scanf函数支持的格式说明符可以带以下修饰符。 

2、格式输入函数-示例 

scanf(“%4d%2d%2d”, &yy, &mm, &dd);
若输入19991015
则yy为1999, mm为10, dd为15 

scanf(“%2d%*3d%2d”,&a,&b);
若输入12 345 67
则a为12,b为67

3、格式输入函数-输入字符

用“%c”格式符时,空格和转义字符作为有效字符输入
例子,
scanf(“%c%c%c”,&c1,&c2,&c3);
若输入a b c
则c1为a, c2为空格, c3为b 

ret=scanf(“%d%c%f”,&a,&b,&c);
若输入1234a123o.26
则a为1234, b为‘a’, c为123 

4、scanf函数的返回值 

 如何处理scanf()函数误输入造成程序出错

#include<stdio.h>
int main(void)
{
int a,b,c;
scanf("%d,%d",&a,&b);
c=a+b;/*计算a+b*/
printf("%d+%d=%d",a,b,c);
return 0;
}

五、如何处理输入函数留下的垃圾

1、输入函数留下的“垃圾” 

使用输入函数可能会留下垃圾 

int x;
char ch;
scanf(“%d”,&x);
scanf(“%c”,&ch);
printf(“x=%d,ch=%d\n”,x,ch);

 方法1:用getchar()清除

int x;
char ch;
scanf(“%d”,&x);
getchar();
ch=getchar();
printf(“x=%d, ch=%d\n”, x, ch);

方法2: 用格式串中空格或“%*c”来“吃掉”

int x;
char ch;
scanf(“%d”, &x);
scanf(“ %c”, &ch);或 scanf(“%*c%c”, &ch);

相关推荐

  1. 【C语言】(7)输入输出

    2024-06-09 04:02:01       59 阅读
  2. 【C语言】格式化输入/输出

    2024-06-09 04:02:01       44 阅读
  3. Linux输出输入重定向

    2024-06-09 04:02:01       37 阅读
  4. C语言中的输入输出详解

    2024-06-09 04:02:01       65 阅读
  5. C语言标准的输入输出

    2024-06-09 04:02:01       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-09 04:02:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-09 04:02:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-09 04:02:01       82 阅读
  4. Python语言-面向对象

    2024-06-09 04:02:01       91 阅读

热门阅读

  1. vite+vue+ts项目中报错解决方案

    2024-06-09 04:02:01       26 阅读
  2. 前端学习笔记

    2024-06-09 04:02:01       30 阅读
  3. Python | 刷题笔记

    2024-06-09 04:02:01       31 阅读
  4. C++ extern “C”

    2024-06-09 04:02:01       30 阅读
  5. 1130. 【二维数组】打印螺旋矩阵

    2024-06-09 04:02:01       30 阅读
  6. Android 13 亮度调节代码分析

    2024-06-09 04:02:01       29 阅读
  7. 中国剩余定理学习

    2024-06-09 04:02:01       31 阅读
  8. 【React】前端插件 uuidjs 的使用 --随机生成id

    2024-06-09 04:02:01       28 阅读