标题:请帮我解开困惑我多时的问题!!!!!
只看楼主
lizjohn
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2010-10-28
结帖率:70.59%
已结贴  问题点数:20 回复次数:5 
请帮我解开困惑我多时的问题!!!!!
#include "stdio.h"
#include"stdlib.h"

void main()
{FILE*fp;
    char ch;
    if((fp=fopen("F:\good.txt","w"))==NULL)
    {printf("cannot open\n");
        exit(0);
    }
    ch=getchar();
    ch=getchar();
    while(ch!='#')
    {fputc(ch,fp);                   //就是这儿
        putchar(ch);                 不懂!!!//
        ch=getchar();
    }
    putchar(10);
    fclose(fp);
   
}

执行此程序时,假如输入“computer",按道理应该输入一个字符就输出此字符啊!(如输入‘c',紧接着就该马上输出'c'啊?)为什么会把整个“computer”输入了,才输出呢???
请高手帮我解答,谢谢!!!
搜索更多相关主题的帖子: 困惑 
2010-10-30 22:08
drianlv
Rank: 2
等 级:论坛游民
帖 子:15
专家分:12
注 册:2006-3-17
得分:10 
.... IO 应该有个缓冲区吧,当你输入的时候,只是把数据放到缓冲区中了..系统check到你按下回车了,才把缓冲区的数据交给下面的程序处理..
2010-10-30 22:13
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
得分:10 
程序代码:
#include<stdio.h>
#include<stdlib.h>

void main()
{
    FILE*fp;
    char ch;
    if((fp=fopen("F:\good.txt","w"))==NULL)
    {
        printf("cannot open\n");
        exit(0);
    }
    ch=getchar();  //当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止
    while(ch!='#')
    {
        fputc(ch,fp);                   //就是这儿
        putchar(ch);                // 把ch 写入good.txt 文件里啊
        ch=getchar();
    }
    putchar(10);
    fclose(fp);
   
}
所以输入的时候是  输入 一个字符  按一个回车 ,它就会输出了
收到的鲜花
  • lizjohn2010-10-30 22:36 送鲜花  3朵   附言:谢谢!你真厉害

If You Want Something, Go Get It, Period.
2010-10-30 22:20
lizjohn
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2010-10-28
得分:0 
回复 3楼 m21wo
谢谢!!!想问一下缓存区的知识是那里面的?
2010-10-30 22:37
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
得分:0 
网上百度一下!

If You Want Something, Go Get It, Period.
2010-10-30 22:39
雾雨淼淼
Rank: 2
来 自:甘肃金昌
等 级:论坛游民
帖 子:85
专家分:89
注 册:2010-8-17
得分:0 
嘿嘿嘿,学习来的
2010-10-30 23:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-324501-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.288977 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved