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;
} 展开
#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;
} 展开
4个回答
展开全部
#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)这句不要了,你看看直接复制粘贴能不能好使
展开全部
while(!feof(fp))
{
ch=fgetc(fp);
if ( ch=='\n' )
{
getchar(); //等待你按一下回车
}
else
putchar(ch);
}
{
ch=fgetc(fp);
if ( ch=='\n' )
{
getchar(); //等待你按一下回车
}
else
putchar(ch);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以一加一个判断,当遇到‘\n'时 sleep()就可以了
if(ch == '\n') sleep(200);
if(ch == '\n') sleep(200);
追问
你回答的也是对的,可以做到逐行显示。如何做到逐字符显示啊?我再提一个问题,你回答一下,我给你采纳一下。
追答
是不是逐字显示还要加上音效。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把 这个循环
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]; )
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]; )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |