1

while ループで複数のファイル名を作成するために fopen に渡すパス名を strcat しようとしています。

char path[30]="";
while(!feof(stdin))
{
    strncat(path,folder,8);
    strcat(path,filename);
    strncat(path,ext,4);
    printf("file path:%s\n",path);
    File[n] = fopen(path,"a");
    path=0;
}

再度連結できるように、空の char 配列へのパスを返すにはどうすればよいですか? または、これを行うより良い方法はありますか?

4

5 に答える 5

1

nullで終了しているので、そのまま

path[0] = 0;
于 2013-03-04T07:22:23.673 に答える
0

memset()関数を試してください。これにより、アレイをクリーンアップできます。

書く:

memset((void*)path, 0, 30*sizeof(char));

それ以外の

path = 0;
于 2013-03-04T07:18:11.167 に答える
0

snprintfパスのコンテンツを作成するために使用します

#define MAX_PATH_SIZE 30
char path[MAX_PATH_SIZE] = "";
while (!feof(stdin))
{
  snprintf(path, MAX_PATH_SIZE, "%s%s%s", folder, filename, ext);
  printf("file path:%s\n",path);
  File[n] = fopen(path,"a");
}
于 2013-03-04T07:24:57.057 に答える
0

に変更path=0;path[0] = 0;ます。これにより、文字列が空になります。

于 2013-03-04T07:21:19.897 に答える
0

パスを設定[0] = 0; このようなルーチンは、終了として 0 に注目します。

于 2013-03-04T07:22:35.330 に答える