通过代码写入文件名称 - C.

时间:2017-04-14 19:04:25

标签: c

我正在创建一个基本上接收2个文件(.pal和.dic文件)的程序,并输出一个名为solution file(blabla.sol)的文件。但是,该解决方案文件的名称取决于程序收到的那些文件之一。如何修改程序以根据接收文件名称的名称更改输出文件的名称?在这种情况下,我希望它与我的name_pal文件名称相同。

这是我已编写的程序(现在,它只是输出一个具有固定名称的文件):

    int main(int argc, char *argv[])
    {
      char name_dic[MAX_FILENAME_SIZE]; 
      char name_pal[MAX_FILENAME_SIZE]; 
      char name_sol[] = "prob0.sol"; 

      char words_dic[MAX_WORD_SIZE]; 
      char words_pal[MAX_WORD_SIZE]; 
      char word_same_size[MAX_WORD_SIZE];

      char dic_total[MAX_DIC_SIZE][MAX_WORD_SIZE]; 
      char pal_total[MAX_PAL_SIZE][MAX_WORD_SIZE];

      FILE *dic, *pal, *sol;

      if (argc < 3)
      {
          printf("Missing files.\n");
          exit(1);
      }

      strcpy(name_dic, argv[1]); 
      strcpy(name_pal, argv[2]); 

      dic = fopen(name_dic, "r"); 
      if (dic == NULL)            
      {
         printf("Can not open dictionary file: %s\n", name_dic);
         exit(1);
      }

      pal = fopen(name_pal, "r");
      if (pal == NULL)
      {
          printf("Can not open problem file: %s\n", name_pal);
          exit(1);
      }

      sol = fopen(name_sol, "w");
      if (sol == NULL)
      {
           printf("Can not open solution file: %s\n", name_sol);
           exit(1);
      }
      /* rest of the code */

1 个答案:

答案 0 :(得分:0)

您可以在&#39;。&#39;上编写截断功能。然后附加sol,如下面的代码段所示。

      char name_sol[MAX_FILENAME_SIZE];

      int i;
      for(i=0;i<MAX_FILENAME_SIZE;i++){
              name_sol[i]=name_pal[i];
              if(name_sol[i]=='.') break;
      }
      strcpy(name_sol+i+1,"sol");
      printf("%s\n",name_sol);