C语言中的输入输出函数和两种特殊运算符

格式输出函数:

printf("字符");//原样输出

printf("%格式控制符", 指定的数据);//以固定的格式输出指定的数据

%d   %c   %s    %p   %f    %e   %g    %%

格式修饰符:

m %md //输出指定域宽,数字长度>m,原样输出,小于m,左补空格

.n %.nf //限制浮点数的小数位数(四舍五入)//限制字符串长度

l %lf //修饰f e g 双精度

%ld //修饰d i u x o 表示长整形

# %#x //修饰x X o ,显示进制前的提示符0x  0

+

-

0

示例代码:

#include <stdio.h>

int main()
{
    int num = 123;
    double num2 = 3.141592653545;

    printf("%6d \n", num);

    printf("%.3lf \n", num2);
    printf("%.7lf \n", num2);
    printf("%.20f \n", num2);
    printf("%.31f \n", num2);

    printf("%10f \n", num2);
    printf("%10.3f \n", num2);

    printf("%40d \n", num);
    printf("%040d \n", num);

    printf("%-40d \n", num);

    printf("%+6d \n", num);

    return 0;
}

编译输出:

   123 
3.142 
3.1415927 
3.14159265354500005785 
3.1415926535450000578464369027643 
  3.141593 
     3.142 
                                     123 
0000000000000000000000000000000000000123 
123                                      
  +123

转义字符:

用 \ 将字符原本的意义改变,赋予了新的含义

\n    //换行

\t //水平制表符

\0 //空

\v //垂直制表

\f //换页

用 \ 将有特殊含义字符,转换为本身的含义

\\      //代表一个反斜线字符''\'     

\'      //代表一个单引号(撇号)字符

\"      //代表一个双引号字符         

\ddd    //1到3位八进制数所代表的任意字符      三位八进制

\xhh    //1到2位十六进制所代表的任意字符      二位十六进制

示例代码:

#include <stdio.h>

int main()
{
    printf("hello world!\n");

    printf(" \\ ");   	
    printf(" \"  ");
    printf(" %% \n");

    printf(" \123  \n");
    printf(" \x28  \n");

    printf(" \123344  \n");

    printf(" \277  \n");

    return 0;
}

编译输出:

hello world!
 \  "   % 
 S  
 (  
 S344  
 �

格式输入函数:

scanf("格式控制符", 输入位置地址);

格式控制符:

%d

%c

%f

%s

修饰符:

m //指定域宽

l //双精度或长整形

h //短整形

* //抑制符

scanf输入数据结束标志:

空格  回车   tab

非法输入

m 指定域宽(123  m=2  12)

scanf内其他字符,需要原样输入

使用scanf函数时,可能会产生垃圾字符,清除垃圾字符方法:

1.getchar();

2.%*c  //使用抑制符

示例代码1:

#include <stdio.h>

int main()
{
    int num1 = 0;
    double num2 = 0;
    char ch = 'a';

    scanf("%d", &num1);
    scanf("%lf", &num2);

    printf("%d\n", num1);
    printf("%lf\n", num2);
    printf("%c\n", ch);

    return 0;
}

编码输出1:

1     //键盘输入
1.23  //键盘输入

1
1.230000
a

示例代码2:

#include <stdio.h>

int main()
{
    int num1 = 0;

    printf("请输入一个整数:");
    scanf("%4d", &num1);

    printf("输出:%d\n", num1);
    return 0;
}

编译输出2:

请输入一个整数:123456
输出:1234

示例代码3:

int main()
{
    int num1;
    int num2;

    scanf("%d,%d", &num1, &num2);

    printf("output:%d\n", num1);
    printf("output:%d\n", num2);

    return 0;
}

编译输出3:

1,5
output:1
output:5

示例代码4:

#include <stdio.h>

int main()
{
    int num1, num2;

    scanf("%d", &num1);
    scanf("%*c");  // 能够吃掉垃圾字符(本例吃掉多余的空格)
    scanf("%d", &num2);

    printf("num1 = %d\n", num1);
    printf("num2 = %d\n", num2);

    return 0;
}

编译输出4:

1                                                                      6
num1 = 1
num2 = 6

字符输入函数:

getchar()输入单个字符。

变量名  =  getchar()

清除垃圾字符

示例代码:

#include <stdio.h>

int main()
{
    char ch ;
    int num1;
    int num2;
	
	ch = getchar();
    scanf("%d", &num1);
    scanf("%d", &num2);

    printf("output:%c\n", ch);
    printf("output:%d\n", num1);
    printf("output:%d\n", num2);

    return 0;
}

编译输出:

a 2 3
output:a
output:2
output:3

字符输出函数:

putchar()输出单个字符

putchar(变量名);

putchar(字符);//字符用''

putchar(ASCII);

示例代码:

#include <stdio.h>

int main()
{
    char ch;

    ch = getchar();

    putchar(ch);
    putchar('\n');
    putchar(10);

    printf("\n");

    return 0;
}

编译输出:

aaaaaaaaaaaa   //键盘输入
a


字符串输出函数

puts()

puts(字符串首地址);

puts(“字符串”);

//后面会自动换行

补充:数组 char arr[n] = {"字符串"};//n字符的个数,arr是数组名,同时是字符串首地址

示例代码:

#include <stdio.h>

int main()
{
    char  arr[6] = {"hello"};
    char  arr1[6] = {"ni hao"};


    puts(arr);
    puts(arr1);

    printf("%s\n", arr);
    printf("%s\n", arr1);


    puts("world");

    return 0;
}

编译输出

hello
ni hao
hello
ni hao
world

字符串输入函数:

gets()

gets(字符串的首地址);

以换行作为结束标志,空格能输入

//scanf把空格作为结束标志之一,不能输入空格。

示例代码:

#include <stdio.h>

int main()
{
    char arr[7] = {"hello"};
    char arr1[7] = {"hello"};

  
    scanf("%s", arr1);

    puts(arr);
    puts(arr1);

    return 0;
}

编译输出:

CSDN  //键盘输入
hello
CSDN

两种特殊运算符:

三目运算符:

?: //三目运算符  条件运算符

表达式?结果1:结果2

表达式成立得到结果1,反之得到结果2

示例代码:

#include <stdio.h>

int main()
{
    int a = 432;
    int b = 321;
	
    printf("%d\n", (a>b)?1:0 );
    printf("%d\n", (a>b)?a:b );

    return 0;
}

编译输出:

1
432

逗号运算符:

, //逗号运算符

从左往右依次执行,取最右边的值

示例代码:

#include <stdio.h>

int main()
{
    int a = 12;
    int b = 34;
    int c = 56;

    printf("%d\n", (a++, b++, c++));  

    return 0;
}

编译输出:

56    

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值