C语言程序,想从本地读取“word.txt”中的内容,并逐行显示在显示器上,怎么写?

下面的代码,可以读取,但是一下全部显示出来了。加一段什么代码?谢谢。#include<stdio.h>#include<stdlib.h>#include<string.... 下面的代码,可以读取,但是一下全部显示出来了。加一段什么代码?谢谢。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char ch;
FILE *fp;
fp=fopen("/home/lay/Desktop/baby/word/word.txt","r");
if(fp==NULL)
{
printf("open file word.txt failed!\n");
}
while(!feof(fp))
{
ch=fgetc(fp);
putchar(ch);
//sleep(3);
}
fclose(fp);
return 0;
}
展开
 我来答
wchyumo2011
推荐于2016-11-11 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2858万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char ch;
    char buffer[1024];//缓冲区
    int len = 0;
    FILE *fp;
    fp=fopen("/home/lay/Desktop/baby/word/word.txt","r");
    if(fp==NULL)
    {
        printf("open file word.txt failed!\n");
    }
    while(!feof(fp))
    {
        ch=fgetc(fp);
        buffer[len++] = ch;//放到缓冲区
        if (ch == '\n'){
            buffer[len] = '\0';
            printf ("%s", buffer);
            len=0;
            sleep(3);
         }//回车输出
     }
     if (len){buffer[len] = '\0';printf ("%s", buffer);}//如果最后没有回车,输出缓冲区内容
     fclose(fp);
     return 0;
}
更多追问追答
追问
按你说改了,第一遍一下全部显示出来。而且又显示了两遍。如何逐字符显示,而且只显示一遍??

MR. ANDERSON.MAKE A HUMAN BEING IN TO THIS.
Zu�:<v�
R. ANDERSON.MAKE A HUMAN BEING IN TO THIS.
Zu�:<v��R. ANDERSON.MAKE A HUMAN BEING IN TO THIS.
追答
我后来又把代码改了,把putchar(ch)这句不要了,你看看直接复制粘贴能不能好使
kaixingui2012
2015-05-09 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6495万
展开全部
while(!feof(fp))
{
ch=fgetc(fp);
if ( ch=='\n' )
{
getchar(); //等待你按一下回车
}
else
putchar(ch);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
478617
2015-05-09 · TA获得超过875个赞
知道小有建树答主
回答量:725
采纳率:100%
帮助的人:96.1万
展开全部
你可以一加一个判断,当遇到‘\n'时 sleep()就可以了
if(ch == '\n') sleep(200);
追问
你回答的也是对的,可以做到逐行显示。如何做到逐字符显示啊?我再提一个问题,你回答一下,我给你采纳一下。
追答
是不是逐字显示还要加上音效。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笃侠6A
2015-05-09 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3275万
展开全部
把 这个循环
while(!feof(fp))
{
ch=fgetc(fp);
putchar(ch);
//sleep(3);
}
改为
fgets(str,199,fp);
while(!feof(fp))
{
printf("%s",str);
fgets(str,199,fp);
//sleep(3);
}
试试。
其中str为长度为200的字符数组( char str[20]; )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式