Программа на C, которая читает текстовый файл с пробелом / запятой / символом табуляции и копирует его содержимое, используя другой разделитель, в другой текстовый файл - PullRequest
0 голосов
/ 27 апреля 2018

Я довольно новичок в c и хочу написать программу, которая принимает аргументы командной строки, которая читает текст из файла с разделителями и записывает содержимое в новый файл с другим разделителем.

Ввод cmd будет выглядеть примерно так:

prog.exe i: \ test.txt i: \ new.txt запятая

для чтения из текстового файла test.txt с разделителями-запятыми и копирования его содержимого в текстовый файл new.txt с помощью разделителя табуляции.

Я уже сделал часть программы, но я застрял при замене разделителя.

int main(int argc,char *argv[])
{
   FILE *fpr,*fpw;

   char dr[2]="",dw[2]="",buffer[300];

   fpr = fopen(argv[1], "r");
   fpw = fopen(argv[2], "w");

   if (strcmp("comma", argv[3]) == 0) 
      strcpy(dr,",");
   else if (strcmp("space", argv[3]) == 0) 
      strcpy(dr, " ");
   else if (strcmp("tab", argv[3]) == 0)
      strcpy(dr, "\t");

   if (strcmp("comma", argv[4]) == 0)
      strcpy(dw, ",");
   else if (strcmp("space", argv[4]) == 0)
      strcpy(dw, " ");
   else if (strcmp("tab", argv[4]) == 0)
      strcpy(dw, "  ");

   while (!feof(fpr)) {
      fgets(buffer,300,fpr);//gets whole line to replace delimiter

      for (int i = 0; buffer[i]!='\n' && buffer[i] != '\0'; i++) {
         if (buffer[i]==dr){}
      }
   }



   return 0;
}

dr-> разделитель в файле для чтения; dw-> разделитель, который будет использоваться при записи; fpr-> указатель файла для файла для чтения; fpw-> указатель файла для файла, который будет записан в

РЕДАКТИРОВАТЬ: удалось заставить его работать. Я не знал, что \ t рассматривается как 1 символ.

...