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)

  • 相关阅读:
    Python基础(一)
    计算机编程和编程语言
    初始Markdown
    Python模块
    Python递归以及面向过程编程
    Python推导式和匿名函数
    Python学闭包函数和装饰器
    Python函数的特点
    Python文件高级应用和如何使用函数
    Python字符编码和文件处理
  • 原文地址:https://www.cnblogs.com/lanhaicode/p/10645542.html
Copyright © 2011-2022 走看看