c语言中如何读取一个文件word.txt(10M),并把读取的文件写进磁盘中的word1.txt.求代码急急。。。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中如何读取一个文件word.txt(10M),并把读取的文件写进磁盘中的word1.txt.求代码急急。。。相关的知识,希望对你有一定的参考价值。
参考技术A FILE *fp, *fp2;char line[1024];
if ((fp = fopen("d:\\a.txt", "r")) == NULL)
printf("load file failed.");
if ((fp2 = fopen("d:\\b.txt", "w+")) == NULL)
printf("load file failed.");
while (fgets(line, sizeof(line), fp))
// printf("%s\n",line);
fputs(line, fp2);
getchar();
fclose(fp);
fclose(fp2);追问
大侠,因为我的词库word.txt有差不多2MB,调试时通不过,要中止。。。你改一下咯
追答FILE *fp, *fp2;
char line[1024];
if ((fp = fopen("d:\\a.txt", "r")) == NULL)
printf("load file failed.");
if ((fp2 = fopen("d:\\b.txt", "w+")) == NULL)
printf("load file failed.");
while (fgets(line, sizeof(line), fp))
printf("%s\n",line);
fputs(line, fp2);
fclose(fp);
fclose(fp2);
printf("Over");
int main()
FILE *pword,*pword1;char a;
if((pword = fopen("word.txt","rt")) == NULL) return 0;
if((pword1= fopen("word1.txt","at")) == NULL) return 0;
do
a = fgetc(pword);
fputc(a,pword1);
while (a != EOF);
fclose(pword);fclose(pword1);
return 1;
追问
大侠,不行噢,
我的要求首先是要把词库word.txt显示在屏幕上,然后把词库存入到word1.txt
中哦,请你在试试啦
在a = fetc (pword);
后面加一个 printf("%c",a);
不能实现我的要求哈,大侠再试试
追答额```
你自己用一个FSEEK函数搞下吧,每次跳2M的数据
我是初学者还没学到哪哈,大侠,你帮帮忙啊
本回答被提问者采纳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 <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就是逐字符显示啊
参考技术A while(!feof(fp))ch=fgetc(fp);
if ( ch=='\n' )
getchar(); //等待你按一下回车
else
putchar(ch);
参考技术B 你可以一加一个判断,当遇到‘\n'时 sleep()就可以了
if(ch == '\n') sleep(200);追问
你回答的也是对的,可以做到逐行显示。如何做到逐字符显示啊?我再提一个问题,你回答一下,我给你采纳一下。
追答是不是逐字显示还要加上音效。。。。
参考技术C 把 这个循环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]; )
以上是关于c语言中如何读取一个文件word.txt(10M),并把读取的文件写进磁盘中的word1.txt.求代码急急。。。的主要内容,如果未能解决你的问题,请参考以下文章