我在准备考试的时候遇到过这个问题。给出的答复如下:
( a) 'a'
( b) '\n'
( c) '012'
( d) '\0'
我试着找出一般规则,但失败了。
发布于 2017-01-15 20:43:35
在列出的4种模式中,只有'\n'肯定会受到以文本模式而不是二进制模式写入文件的影响。
对于文本文件,新的行字符'\n'通常被翻译成/从'\n' (不变)、"\r\n"或很少\r'。
'012'是一个具有实现定义值的多字符常量,不会受到模式的影响。
未列出的'\012'是使用八进制转义序列的字符常量。当ASCII是源编码时,它的行为类似于'\n'。
未列出的012是一个八进制常数。它的行为类似于'\012'。
如果你问我的话。
发布于 2017-01-15 20:00:04
假设ASCII,八进制值012与行提要(\n)字符相同,所以b、c和d)是正确的答案(行尾将更改为适合您的系统的任何内容,可能是\r或\r\n;fprintf和fputs将停止于空字符;fwrite (二进制)不会)。
如果您的字符集没有明确声明为ASCII,那么唯一安全的假设是b)和d),换行符\n和null终止符\0在二进制模式下将与文本模式不同。
https://stackoverflow.com/questions/41665613
复制相似问题