Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C语言中通过特定方式读取和更改文件信息_C_File - Fatal编程技术网

在C语言中通过特定方式读取和更改文件信息

在C语言中通过特定方式读取和更改文件信息,c,file,C,File,我想从文件中读取信息并更改它。。。 例如,我有以下数据: city dog name house 4ever cat 2man tree five 必须只留下基于字符的单词(不能是数字) 我知道如何读取文件,但我不知道如何更改任何内容 这是我读取文件的代码: 代码: #include <stdio.h> #include <stdlib.h> int main() { char ch; FILE *file; file = fopen("test

我想从文件中读取信息并更改它。。。 例如,我有以下数据:

city dog name house 4ever
cat 2man tree five 
必须只留下基于字符的单词(不能是数字)

我知道如何读取文件,但我不知道如何更改任何内容 这是我读取文件的代码:

代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   char ch;
   FILE *file;

   file = fopen("testfile.txt", "r"); // read mode

   if( file == NULL )
   {
      perror("Klaida. Failo negalima atidaryti.\n");
      exit(EXIT_FAILURE);
   }

   printf("Failo duomynys yra:\n");

   while( ( ch = fgetc(file) ) != EOF )
      printf("%c",ch);

   fclose(file);
   return 0;
}
#包括
#包括
int main()
{
char ch;
文件*文件;
file=fopen(“testfile.txt”,“r”);//读取模式
if(file==NULL)
{
perror(“Klaida.Failo negalima atidaryti.\n”);
退出(退出失败);
}
printf(“Failo dumynys yra:\n”);
而((ch=fgetc(文件))!=EOF)
printf(“%c”,ch);
fclose(文件);
返回0;
}
我强烈建议您使用
读取
/
写入
unistd.h
标题。你在这里选择的方法非常……原始。不管怎样,你应该这样做:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   char ch;
   FILE *file;
   FILE *file_write;

   file = fopen("testfile.txt", "r"); // read mode
   file_write = fopen("testfile_write.txt", "w");
   if( file == NULL )
   {
      perror("Klaida. Failo negalima atidaryti.\n");
      exit(EXIT_FAILURE);
   }

   printf("Failo duomynys yra:\n");

   while( ( ch = fgetc(file) ) != EOF ) {
        if (ch == '4') {
                fputc('f', file_write);
                fputc('o', file_write);
                fputc('u', file_write);
                fputc('r', file_write);
        }
        else if (ch == '2') {
                fputc('t', file_write);
                fputc('w', file_write); 
                fputc('o', file_write);
        }
        else 
                fputc(ch, file_write);
   }

   fclose(file);
   return 0;
}
#包括
#包括
int main()
{
char ch;
文件*文件;
文件*文件写入;
file=fopen(“testfile.txt”,“r”);//读取模式
file_write=fopen(“testfile_write.txt”,“w”);
if(file==NULL)
{
perror(“Klaida.Failo negalima atidaryti.\n”);
退出(退出失败);
}
printf(“Failo dumynys yra:\n”);
而((ch=fgetc(文件))!=EOF){
如果(ch='4'){
fputc(“f”,文件写入);
fputc(“o”,文件写入);
fputc(“u”,文件写入);
fputc(“r”,文件写入);
}
else if(ch='2'){
fputc('t',文件写入);
fputc(“w”,文件写入);
fputc(“o”,文件写入);
}
其他的
fputc(ch,文件写入);
}
fclose(文件);
返回0;
}

巨大提示:
fgetc
的反面是<代码>fputc
!塔达阿!