#include<stdio.h>
#include<time.h>
int main(){
char filepath[100];
char datevar[15];
char command[30];
struct tm *t1;
time_t now ;
time(&now);
memcpy(&t1,localtime(&now),sizeof(t1));
t1 = localtime(&now);
memset(filepath,0,sizeof(filepath));
sprintf(datevar,"%04d%02d%02d",t1->tm_year+1900,t1->tm_mon+1,t1->tm_mday);
strcpy(filepath,"abc");
strcat(filepath,"/xyx/");
strcat(filepath,datevar);
strcat(filepath,"/");
printf("filepath 1:- %s\n",filepath);
sprintf(command, "hello %s good path",filepath);
printf("filepath 2:- %s\n",filepath);
return 0;
}
上記のプログラムでは、両方printf
とも異なるfilepath
. 私が得ている出力:-
filepath 1:- abc/xyx/20130430/
filepath 2:- h
私の質問は、で使用している場合にファイルパスが変更される理由ですsprintf
。