【问题标题】:Char concatenation [closed]字符连接[关闭]
【发布时间】:2014-02-19 07:26:30
【问题描述】:

我有 30 个文件要在 C 中打开。

phantom_atn_1.bin phantom_atn_2.bin ... phantom_atn_30.bin

我正在尝试以下方法,但它不起作用:

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

char filename[100],filename1[100],extension1[100];
int fileNum,frameNum;


main()
{
    printf("Test1\n");
    frameNum=30;

    strcpy (extension1, ".bin");

    for (fileNum=1;fileNum<frameNum+1;fileNum++)
    {
        printf("Test2\n");
        strcpy (filename1, "phantom_atn_");
        printf("Test3\n");  
        printf(filename1); 
        printf("\n");  
        printf(filename,"%d", fileNum); 
        printf("Test5\n");  
        sprintf(filename,"%d", fileNum); 
        printf("Test6\n");  
        strcat(filename1,extension1);     
        printf("Test7\n");
        printf(filename);
        printf("Test8\n");
        printf(filename);
        image1=fopen(filename,"rb");
    }
};

任何帮助将不胜感激。

【问题讨论】:

  • 怎么doesn't work???
  • 请正确缩进您的代码。

标签: c string char concatenation


【解决方案1】:

为什么不简单地使用例如snprintf?

snprintf(filename, sizeof(filename), "phantom_atn_%d.bin", fileNum);

_snprintf 在 Windows 上)

【讨论】:

    【解决方案2】:

    希望这会奏效:

    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    
    char filename[100];
    int fileNum,frameNum;
    
    
    main()
    {
      FILE *fp[30];
      char *extension1 = ".bin";
      frameNum=30;
      for (fileNum=1;fileNum<frameNum+1;fileNum++)
      {
        sprintf(filename, "phantom_atn_%d%s", fileNum, extension1);
        printf("%s\n", filename);
        //I have opened file in write mode here                                                                                                                                                                                                                                                                                 
        fp[fileNum] = fopen(filename, "w");
        //now you can write anything in file pointer using below code                                                                                                                                                                                                                                                           
        fprintf(fp[fileNum], "%d", fileNum);
      }
    }
    

    【讨论】:

    • 效果很好。非常感谢您的帮助。真的很感激!! :)
    猜你喜欢
    • 2021-11-06
    • 2015-09-22
    • 2012-03-05
    • 2010-09-29
    • 2014-11-27
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    相关资源
    最近更新 更多