C-代码笔记-输入输出

1.ACSII 字符实质和整数存储方式相同

//2018年9月16日01:35:54

# include <stdio.h>
int main(void)
{
    char ch = '0';
//    printf("%c\n", ch);
  printf("%d\n", ch); //ASCII码规定字符A以65的整数值表示,字符0以48储存。
    return 0;
}
2.ASCII char使用的常见问题

# include <stdio.h>
int main(void)
{
    char ch = 'a' ;  // ok 定义ch
 // char ch = "ab";  //error 因为"ab"是字符串,不能把字符串赋给单个字符
 // char ch = "a" ;  //error
 // char c  = 'ab';  //error  vc6 可以
 // char ch = 'b' ;  //error 因为ch变量已经在第四行被定义
    ch = 'c';        // ok 赋值ch
    printf("%c\n",ch);

    return 0;
}
  
3.printf 用法

// 2018年9月16日01:32:16
/*
# include <stdio.h>

int main(void)
{
    int i = 33;

    printf("i = %#X\n", i);
    
    return 0;
}
*/
# include <stdio.h>

int main(void)
{
    char i = '33';

    printf("i = %d\n", i);
    
    return 0;
}
4.printf中%X及其相关的用法

/*
   2018年9月15日13:17:25
   功能:

   目的:
        测试%x %X %#X %#x的用法
*/
# include <stdio.h>
int main(void)
{
    int x = 47; //100是十进制 
    printf("%x\n",x); //输出结果是:2f
    printf("%X\n",x); //输出结果是:2F
    printf("%#X\n",x); //输出结果是:0X2X  %#X推荐使用
    printf("%#x\n",x); //输出结果是:0x2f

    return 0;
}
/*
  在Vc++6.0中输出的结果是:
----------------------------
2f
2F
0X2F
0x2f
----------------------------
 总结:

*/
5.scanf 用法

//2018年9月16日01:54:38

# include <stdio.h>

int main(void)
{
    int i;

    //scanf("%d, &i"); // error
    scanf("%d", &i); //&i 表示i的地址 &是一个取地址的符号
    printf("i = %d\n", i);

    return 0;
}
6.scanf 用法 含非输入控制符

//2018年9月18日02:40:52

# include  <stdio.h>

int main(void)
{
    int i;

    scanf("m%d", &i); //m123 正确输入 123 非法的输入 m123n输出 123
    printf("i = %d\n",i);
     
    return 0;
}
7.scanf 一次给多个变量键盘赋值

# include <stdio.h>

int main(void)
{
    int i, j, k;

/*   
    scanf("%d %d", &i, &j);
    // printf("i = %d\n j = %d\n", i, j); //--ok
    // printf("i = %d\n, j = %d\n", i, j); //--ok
    // printf("i = %d\nj = %d\n", i, j); //--ok
    // printf("i = %dj = %d\n", i, j); //--ok
    // printf("i = %d j = %d\n", i, j); //--ok
    printf("i = %d, j = %d\n", i, j); //--ok
*/
/*
   // scanf("%d, %d", &i, &j); //--ok
     // scanf("%d,%d", &i, &j); //--ok
    scanf("%d ,%d", &i, &j); //--ok 需要在第二个输出参数钱加 ,

    printf("i = %d, j = %d\n", i, j);
*/
/*
    scanf("%d  ,  %d", &i, &j); //--ok 空格不管多少只计为一个
     printf("i = %d, j = %d\n", i, j); 
*/
/*    printf("请输入三个值中间用逗号隔开:");
    scanf("%d,%d,%d", &i, &j, &k);
    printf("i = %d, j = %d, k = %d\n", i, j, k);
*/
        scanf("%d%d%d", &i, &j, &k);
    printf("i = %d, j = %d, k = %d\n", i, j, k);

    return 0;
}
8.scanf对用户非法输入的处理

//2018年9月19日00:14:30
# include <stdio.h>

int main(void)
{
    int i;
    char ch;

    scanf("%d", &i);
    printf("i = %d\n", i);

    //...
    while ((ch = getchar()) != '\n') //! 后面不能有空格
        continue;
    int j;
    scanf("%d", &j);
    printf("j = %d\n", j);

    return 0; 
}
/*
在Vc++6.0中输出的结果是:
----------------------------
1m
i = 1
2
j = 2
Press any key to continue
----------------------------
*/

猜你喜欢

转载自www.cnblogs.com/LXL616/p/10635594.html
今日推荐