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

下面的代码,可以读取,但是一下全部显示出来了。加一段什么代码?谢谢。
#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;
}

#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)这句不要了,你看看直接复制粘贴能不能好使

追问

我就是直接复制的,putchar(ch)这句没有了。你再测试一下代码,帮忙修改一下。谢谢。

追答#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char ch;
    char buffer[1024];//缓冲区
    int len = 0;
    FILE *fp;
    fp=fopen("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;
}

我把路径给改了,你自己给改回去吧

468617回答的应该也是对的,睡眠时间需要改小

你原本的代码加上sleep就是逐字符显示啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-09
while(!feof(fp))
{
ch=fgetc(fp);
if ( ch=='\n' )
{
getchar(); //等待你按一下回车
}
else
putchar(ch);
}
第2个回答  2015-05-09
你可以一加一个判断,当遇到‘\n'时 sleep()就可以了
if(ch == '\n') sleep(200);追问

你回答的也是对的,可以做到逐行显示。如何做到逐字符显示啊?我再提一个问题,你回答一下,我给你采纳一下。

追答

是不是逐字显示还要加上音效。。。。

第3个回答  2015-05-09
把 这个循环
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]; )
相似回答