- 浏览: 38818 次
- 性别:
- 来自: 上海
最新评论
回车换行:
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.
当判断条件为:
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
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
发表评论
-
指针 多维数组
2012-06-05 16:12 721这篇文章写的很好 http://www.cnblogs.com ... -
pImp
2011-11-08 17:24 865http://www.cnblogs.com/JulyZhan ... -
关于构造函数,析构函数,explicit等内容
2011-11-01 17:04 1222一.编译器会为我们做什 ... -
C语言标准
2011-10-21 12:11 12221.K&R C 1978年,丹尼斯·里奇(Dennis ... -
对话框工厂
2011-10-14 18:00 6711.对于工厂我的理解: 良好的封装性。使用和创建,初始化分开。 ... -
函数指针实现回掉函数
2011-10-14 17:47 969用法: 头文件中声明: DECL_LINK( Paintin ... -
typedef和指针结合
2011-10-14 17:42 8031. typedef (int *) pInt; 2.type ... -
const的理解和应用
2011-10-14 16:52 1326const的理解和应用 一.理解 const是一种语义上的约束 ... -
空指针的判断
2011-10-11 17:43 929请看NULL的定义: #if !defined(__cp ... -
GUN C 和 ANSI C的几个区别
2011-10-11 10:52 1103http://hi.baidu.com/deep_pro/bl ... -
浮点数的比较
2011-10-11 10:48 1241一浮点数的知识 1.首先浮点数不用补码表示,只有int型才用补 ... -
关于字符串倒转
2011-10-10 20:25 789有纯倒转,也有按单词为单位的。想做个总结 #inclu ... -
C数组和指针的区别
2011-10-10 19:25 724看《C专家编程》总结的的。 首先是个经典的例子: 一个文件定义 ... -
不用中间变量交换数据
2011-10-10 14:42 666那种加加减减的方法其实不对。因为缩小了数据范围。 a1=a1+ ... -
C++模板
2011-10-08 15:52 650template是关键字,template ... -
Quick Sort(快速排序)
2011-10-08 11:20 696Quick Sort算法描述如下: 假设S代表将被处理的序列 ... -
约瑟夫环的解答
2011-10-07 22:48 647http://blog.csdn.net/kittyjie/a ... -
Linux判断大小尾数(big-endian,little-endian)的方法
2011-10-07 22:12 1510static union { char c[4]; u ... -
c++基本文件操作
2011-09-30 00:28 780#include<iostream> #incl ... -
关于文件操作的头文件,类
2011-09-27 14:11 1097C++ 可以看这个 http://www.cplusplus. ...
相关推荐
循环条件是字符`c`不等于`EOF`,在Windows环境下,`EOF`通常代表Ctrl+Z组合键,当用户按下这个组合键时,表示输入结束。 在循环体内,我们使用一系列的`if...else if...`结构来判断输入的字符属于哪一类,并相应地...
在文本模式下,文件会被特殊处理,例如回车换行转换。二进制模式(如"rb"、"wb")则不进行这种转换。fopen()成功返回FILE指针,失败返回NULL。 2. **fclose()** fclose()函数用于关闭由fopen()打开的文件,原型为`...
例如,在Windows系统中,一个换行通常由回车符和换行符的组合(\r\n)表示,而在Unix/Linux系统中仅使用换行符(\n)。当使用文本视图打开文件时,C语言标准库会自动处理这些差异,将读取到的\r\n转换为\n,反之亦然。二...
10. **输入函数**:`getchar()`函数用于从标准输入读取字符,直到用户按下回车键。 11. **变量命名规则**:变量名由字母、数字和下划线组成,首字母通常是小写字母。内部变量的前31位有意义,外部变量至少前6位应...
这个函数用于检测字符是否为空格、制表符、回车、换行、垂直制表符和送纸符号,该函数返回1表示字符为空格、制表符、回车、换行、垂直制表符和送纸符号,否则返回0。 11. extern bit isxdigit (unsigned char);:...
选项B的正确输入格式是10后跟一个空格,然后是20,最后回车换行。 3. 注释:C++支持两种类型的注释,多行注释以`/*`开始,以`*/`结束,单行注释以`//`开始。注释会被编译器忽略,不会影响程序执行,也不会检查其中...
- 文本方式:在Windows系统下,文本文件中的换行符(LF)在写入时会被转换为回车换行(CR-LF),而在读取时,连续的CR-LF会被转换回LF。这种转换可能导致文本方式读取的文件内容长度不同于原始二进制内容。 - 二...
11. **cr**:在ASCII模式下,将回车换行转换为回车,适用于某些特定文件格式的正确传输。 12. **cd..**:进入远程主机的上级目录。 13. **close**:中断与远程服务器的FTP会话,但不退出FTP客户端。 14. **del ...
// getline(char *,int,char) 表示该行字符达到 256 个或遇到换行就结束 cout; } out.close(); // 关闭文件 cin.get(); // cin.get() 是用来读取回车键的 } ``` 6.逐个字符读取文件 逐个字符读取文件的示例...
这里的“@”表示你按了两次回车键,用于换行,虽然它不属于字母字符类别,但在格式化信息时同样重要。而“&”代表文件结束符(EOF),表示信息的结束。未使用的内存位置用破折号表示。 计算机记住“apology.txt”从...
在VB中,常用的换行符有`vbCrLf`(回车+换行)和`vbLf`(换行)。这些符号可以帮助我们更好地解析文件内容。 ```vb Dim line As String Do Until EOF(1) Line Input #1, line If InStr(line, vbCrLf) > 0 Then ' ...
`echo`命令用于打印一行文本,通过`-n`选项可以防止自动换行,而`-e`则允许解释转义字符,例如`\n`用于换行,`\r`用于回车,`\t`用于水平制表符。 `printf`命令提供更高级的格式化输出能力,可以输出字符串、整数、...
isspace函数可以用来检查字符串是否包含空格、制表符、回车、换行、垂直制表符和送纸符号,这个函数对于字符串处理和验证非常有用。 11. isxdigit函数:检查参数是否为16进制数字字符,是则返回1,否则返回0。 ...
其函数原型是`int putchar(int c)`,返回值是输出字符的ASCII码,如果输出成功,返回值就是字符的ASCII码,否则返回EOF。 - 在使用`putchar`时,可以传入`char`、`short`或`int`类型的表达式,函数会将其中的值作为...
- 对于换行符`\n`,在Windows平台上会被转换为`\r\n`(回车加换行),而在Unix或Linux系统中则保持不变。 - 文件末尾可能包含特殊的结束标记(EOF),通常表示为ASCII码值26。 **2. 二进制模式** - **定义**:当...
fString = Replace(fString, chr(13), " ") '将回车符替换为空格 fString = Replace(fString, " ", ",") '将HTML的换行标签替换为全角逗号 fString = Replace(fString, " ", " ") '将HTML的空格实体替换...
* cat >>jingfeng.txt<<EOF:高级用法,配合重定向 7. vi 命令 vi 命令是一个简单的编辑命令。主要案例: * vi jingfeng.txt:编辑文件 8. vim 命令 vim 命令是一个复杂的编辑器。使用方法同上。 9. echo 命令...
这个函数会将字符串`s`的内容写入`fp`指向的文件,如果发生写入错误,它会返回EOF,否则返回一个非负数。值得注意的是,`fputs()`不会像`puts()`那样自动在字符串末尾添加换行符,除非字符串本身包含换行符。 2. **...