Chinaunix首页 | 论坛 | 博客
  • 博客访问: 367914
  • 博文数量: 715
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:46
文章分类

全部博文(715)

文章存档

2011年(1)

2008年(714)

我的朋友

分类:

2008-10-13 16:30:22


1、控制台输入结束的时候按下键盘上的Enter键,是往输入流中输入了几个字符?
是不是一个CR 一个LF, 共2个字节?
那么为什么读的时候只能读到LF,读不到CR?

答:因为控制台io是以文本方式,而不是二进制方式打开的,所以其会将输入的\r\n转化为\n,会将输出的\n转化为\r\n


1、类中inline成员函数的定义为什么要放在头文件中?
答:因为调用者需要就地展开代码,如果找不到实现如何展开?所以内联函数一般放在头文件中。

选自周星星的blog
#include

int main( void )
{
    FILE* fp = fopen( "D:\\test.txt", "r+" ); // 文件内容:12345

    char c;
    fread( &c, 1, 1, fp ); // 函数返回1,c为'1' --- 也就是一切正确
    // fseek(fp,0,SEEK_CUR); --- []和[]说加上这一句就好了

    fwrite( "a", 1, 1, fp ); // 函数返回1 --- 也就是一切正确

    fclose( fp ); // 函数返回0 --- 也就是一切正确,然而文件内容仍然为 12345 而没有变为 1a345
    return 0;
}

答:ouput cannot be directly followed by input without an intervening fflush, fseek, fsetpos, or rewind.

        Input cannot be directly followed by output without an intervening fseek, fsetpos, or rewind, or an input operation that encounters an end of file.





--------------------next---------------------

阅读(198) | 评论(0) | 转发(0) |
0

上一篇:头文件不能不说的事

下一篇:Internal Linkage

给主人留下些什么吧!~~