1 問題的提出
int iOffset = 0;
//發現iOffset值爲7,以前一直認爲應該是3
iOffset += snprintf(buff,3,”%s”,”123456”);
2 分析
通過分析snprintf幫助手冊,發現:
snprintf(to, size, “%s”, from);
當size>strlen(from)+1返回值爲strlen(from)
當size<=strlen(from)+1返回值爲strlen(from)+1
3 結論
1 sprintf和snprintf會自動在目地緩存後面添加一個’\0’
char buff[256];
memset(buff,’a’,256);
sprintf(buff,“%s”,”123”);
printf(“%s\n”,buff); //輸出123
2 sprinf和snprintf的返回值是不一樣的