簡體   English   中英

在C中通過特定方式讀取和更改文件信息

[英]Read and change file information by specific way in C

我想從文件中讀取信息並更改它...例如,我有以下數據:

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;
}

強烈建議您使用unistd.h頭文件中的read / write 您在此處選擇的方法非常……原始。 無論如何,這是你應該如何去做:

#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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM