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");

参考技术B #include <stdio.h>
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 <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就是逐字符显示啊

参考技术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.求代码急急。。。的主要内容,如果未能解决你的问题,请参考以下文章

java文件读取(word,txt)

无法将条件结果附加到新列表

c#语言中,如何读取SHP文件?

C语言 如何读取xml文件中的数据并存入一个结构体中

C语言中如何将文件中的数据读取到链表中

C语言从TXT文档中读取一组数字时如何判断已经读到最后一个数字?