`
rollstone
  • 浏览: 39028 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于回车,换行,EOF

阅读更多
回车换行
http://www.cnblogs.com/faraway/archive/2009/03/05/1403649.html
这位大哥解释的很清楚。

我整理下:
三种系统的行结尾:
Windows: <回车><换行>   “\r\n”    0x0d0x0a; //顺序不能错。
Mac    : <回车>         “\r”     0x0d;
Linux  : <换行>         “\n”     0x0a; 

编程的时候,不管哪种系统,C语言标准输出流只要输入“\n”就可以换行了。
Linux 下 getchar() 捕捉的Enter键的Ascii为 0x0a.

EOF
EOF文档的结束符。在Linux下输入ctrl+d(window下:Ctrl+z,还要加一个回车)即视为输入一个EOF。但是EOF一般是作为一个文档结束的信号来处理的,文档中并没有存EOF


http://hi.baidu.com/shichaotansc/blog/item/cf0af7af779665fcfbed50cd.html
这文章写的有问题。并不是EOF不产生编码,而是EOF应该是个为-1的宏。
用getchar()捕捉的ctrl+d (linux下)的Acsii码为0xff.

 
    int ch;
    ch =getchar();
    while (ch != '#') //这样可以捕捉EOF,而不是遇到EOF就结束
    {
       fputc(ch ,fp);
       ch = getchar();
   }
//运行时输入:ctrl+d,#
//16进制查看文件,testtxt为输出文件
od -t x1 testtxt

//结果
0000000 ff
0000001


当判断条件为:
while ( ch !=EOF)
{
....
}
关于终端为什么要两次ctrl+d才能结束输入,这里有详细的讨论
http://bbs.chinaunix.net/viewthread.php?tid=981231&extra=&page=1

总结下就是因为:终端的设置问题。
另外
char c;
while((c = getchar()) != EOF)
http://www.c-faq.com/stdio/getcharc.html
这种写法会引发BUG。

http://bbs.chinaunix.net/thread-233220-1-1.html


分享到:
评论

相关推荐

    C语言统计一串字符中空格键、Tab键、回车键、字母、数字及其他字符的个数(Ctrl+Z终止输入)

    循环条件是字符`c`不等于`EOF`,在Windows环境下,`EOF`通常代表Ctrl+Z组合键,当用户按下这个组合键时,表示输入结束。 在循环体内,我们使用一系列的`if...else if...`结构来判断输入的字符属于哪一类,并相应地...

    几种文件操作编程方发.doc

    在文本模式下,文件会被特殊处理,例如回车换行转换。二进制模式(如"rb"、"wb")则不进行这种转换。fopen()成功返回FILE指针,失败返回NULL。 2. **fclose()** fclose()函数用于关闭由fopen()打开的文件,原型为`...

    C语言文件操作快速上手手册

    例如,在Windows系统中,一个换行通常由回车符和换行符的组合(\r\n)表示,而在Unix/Linux系统中仅使用换行符(\n)。当使用文本视图打开文件时,C语言标准库会自动处理这些差异,将读取到的\r\n转换为\n,反之亦然。二...

    C语言编程注意事项.docx

    10. **输入函数**:`getchar()`函数用于从标准输入读取字符,直到用户按下回车键。 11. **变量命名规则**:变量名由字母、数字和下划线组成,首字母通常是小写字母。内部变量的前31位有意义,外部变量至少前6位应...

    C51函数库函数功能表

    这个函数用于检测字符是否为空格、制表符、回车、换行、垂直制表符和送纸符号,该函数返回1表示字符为空格、制表符、回车、换行、垂直制表符和送纸符号,否则返回0。 11. extern bit isxdigit (unsigned char);:...

    (完整版)c++复习题及答案.doc

    选项B的正确输入格式是10后跟一个空格,然后是20,最后回车换行。 3. 注释:C++支持两种类型的注释,多行注释以`/*`开始,以`*/`结束,单行注释以`//`开始。注释会被编译器忽略,不会影响程序执行,也不会检查其中...

    C语言采用文本方式和二进制方式打开文件的区别分析

    - 文本方式:在Windows系统下,文本文件中的换行符(LF)在写入时会被转换为回车换行(CR-LF),而在读取时,连续的CR-LF会被转换回LF。这种转换可能导致文本方式读取的文件内容长度不同于原始二进制内容。 - 二...

    FTP命令详解_及_shell中的使用

    11. **cr**:在ASCII模式下,将回车换行转换为回车,适用于某些特定文件格式的正确传输。 12. **cd..**:进入远程主机的上级目录。 13. **close**:中断与远程服务器的FTP会话,但不退出FTP客户端。 14. **del ...

    c++ 文件操作(fstream)

    // getline(char *,int,char) 表示该行字符达到 256 个或遇到换行就结束 cout; } out.close(); // 关闭文件 cin.get(); // cin.get() 是用来读取回车键的 } ``` 6.逐个字符读取文件 逐个字符读取文件的示例...

    codes.pdf

    这里的“@”表示你按了两次回车键,用于换行,虽然它不属于字母字符类别,但在格式化信息时同样重要。而“&”代表文件结束符(EOF),表示信息的结束。未使用的内存位置用破折号表示。 计算机记住“apology.txt”从...

    vb读取txt文件

    在VB中,常用的换行符有`vbCrLf`(回车+换行)和`vbLf`(换行)。这些符号可以帮助我们更好地解析文件内容。 ```vb Dim line As String Do Until EOF(1) Line Input #1, line If InStr(line, vbCrLf) &gt; 0 Then ' ...

    Linux常用命令及使用技巧总结1

    `echo`命令用于打印一行文本,通过`-n`选项可以防止自动换行,而`-e`则允许解释转义字符,例如`\n`用于换行,`\r`用于回车,`\t`用于水平制表符。 `printf`命令提供更高级的格式化输出能力,可以输出字符串、整数、...

    C51函数库函数功能表[文].pdf

    isspace函数可以用来检查字符串是否包含空格、制表符、回车、换行、垂直制表符和送纸符号,这个函数对于字符串处理和验证非常有用。 11. isxdigit函数:检查参数是否为16进制数字字符,是则返回1,否则返回0。 ...

    C语言与程序设计ppt-第3章1

    其函数原型是`int putchar(int c)`,返回值是输出字符的ASCII码,如果输出成功,返回值就是字符的ASCII码,否则返回EOF。 - 在使用`putchar`时,可以传入`char`、`short`或`int`类型的表达式,函数会将其中的值作为...

    Delphi函数参考手册

    5. `adjustlinebreaks`函数:调整字符串中的行分隔符,统一为CRLF(回车换行)格式。 6. `align`属性:设置控件在容器中的对齐方式,如左对齐、居中、右对齐等。 7. `alignment`属性:控制控件标签文字的位置,可...

    c++文件的操作他是用二进制试图打开一个文件

    - 对于换行符`\n`,在Windows平台上会被转换为`\r\n`(回车加换行),而在Unix或Linux系统中则保持不变。 - 文件末尾可能包含特殊的结束标记(EOF),通常表示为ASCII码值26。 **2. 二进制模式** - **定义**:当...

    用ASP实现将ACCESS表中的数据记录导入到EXCEL文件中

    fString = Replace(fString, chr(13), " ") '将回车符替换为空格 fString = Replace(fString, " ", ",") '将HTML的换行标签替换为全角逗号 fString = Replace(fString, "&nbsp;", " ") '将HTML的空格实体替换...

    Linux150个基础命令(最终版).docx

    * cat &gt;&gt;jingfeng.txt&lt;&lt;EOF:高级用法,配合重定向 7. vi 命令 vi 命令是一个简单的编辑命令。主要案例: * vi jingfeng.txt:编辑文件 8. vim 命令 vim 命令是一个复杂的编辑器。使用方法同上。 9. echo 命令...

    第12章 文件操作-按行读写文件1

    这个函数会将字符串`s`的内容写入`fp`指向的文件,如果发生写入错误,它会返回EOF,否则返回一个非负数。值得注意的是,`fputs()`不会像`puts()`那样自动在字符串末尾添加换行符,除非字符串本身包含换行符。 2. **...

Global site tag (gtag.js) - Google Analytics