zoukankan      html  css  js  c++  java
  • 回车符与换行符问题——C语言

    回车符(carriage return,’ ’)与换行符 (line feed,’ ’)

    换行对应的ASCII码值是10,回车符对应的ASCII码值是13,需要注意的是用户按下回车键时,对于不同的字符输入函数读取的字符不同,下面上代码

    测试一:

    int main()
    {
        char ch;
    
        ch = getchar();
        printf("%d
    ", ch);
    }

    运行结果:

     

    测试二:

    int main()
    {
        char ch;
    
        ch = getch();
        printf("%d
    ", ch);
    }

    运行结果:

    测试三:

    int main()
    {
        char ch;
    
        ch = getche();
        printf("%d
    ", ch);
    }

    运行结果:

    测试四:

    int main()
    {
        char ch;
    
        scanf("%c", &ch);
        printf("%d
    ", ch);
    }

    运行结果:

    从上面的结果可以看出,虽然输入都是“回车键”(注意是回车键不是回车符)但得到结果却有差异,需要注意的是:在Windows系统中回车键被当做  的组合来使用,当我们从键盘输入回车键时,Windows系统会把回车键当做  来处理(只不过上面的四种字符输入函数读取的结果不同

    getchar——换行符' '(ASCII值为10)

    getch——回车符' ' (ASCII值为13)

    getche——回车符' ' (ASCII值为13)

    scanf——换行符' ' (ASCII值为10)

    回车:使光标移到行首

    换行:使光标移到下一行

     

    下面再补充下文件操作函数,从文本文件(txt文件)用fscanf_s读取(前提条件:先创建一个txt文件按一下回车键,然后保存)

    char ch;
    FILE *fp;
    errno_t err;
    
    err = fopen_s(&fp, "E:\ww.txt", "r");
    fscanf_s(fp, "%c", &ch, sizeof(ch));
    
    printf("%d
    ", ch);

    运行效果:

    从上面可以看出fscanf_s和scanf对回车键的读取是相同的,都是得到的换行符' '(ASCII值为10)

     

    使用fgetc读取

    int main()
    {
        char ch;
        FILE *fp;
        errno_t err;
    
        err = fopen_s(&fp, "E:\ww.txt", "r");
        ch = fgetc(fp);
        printf("%d
    ", ch);
        if (ch == '
    ')
        {
            printf("***");
        }
    
        return 0;
    }

    运行结果:

    从上面的结果可以看出fgetc和fscanf_s读取的字符相同,都是读取到的换行符' '(ASCII值为10)

  • 相关阅读:
    深入理解redis数据类型
    js获取带#号链接后的参数
    js对象深拷贝与浅拷贝
    VUE + ElementUI 从搭建到运行
    python 输入一个整数,判断其是否既是3的倍数,又是5的倍数
    输入一个三位整数,顺序打印个位、十位、百位上的数
    python 输入三个整数,按照从小到大的顺序打印
    python 运算符与分支结构
    python 变量定义
    python 环境安装
  • 原文地址:https://www.cnblogs.com/lanhaicode/p/10645542.html
Copyright © 2011-2022 走看看