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)

  • 相关阅读:
    9、实战快速上手
    8、路由【前端实现页面的跳转】
    7、Webpack的学习【打包工具】
    6、vue的安装【nodejs、vue-cli】
    5、计算属性、内容分发、自定义事件
    4、Axios异步通信
    3、Vue表单的双向绑定以及第一个Vue组件
    2、Vue的基本属性
    PHP算法之寻找两个有序数组的中位数
    PHP算法之无重复字符的最长子串
  • 原文地址:https://www.cnblogs.com/lanhaicode/p/10645542.html
Copyright © 2011-2022 走看看