【发布时间】:2024-01-15 05:28:01
【问题描述】:
我试图理解 printf() 但我只熟悉 C++ cout
void print_section(int n, int z){
char dots[2*n+1]; // this makes a char array
memset(dots,':',2*n+1); // this is similar to setfill()
dots[2*n+1] = 0;
for(int r = 0; r < n+1; r++){
printf("%*.s|%.*s\\%.*s/%.*s|\n",z-n,"",r,dots,2*(n-r),dots,r,dots);
}
for(int r = n; r >= 0; r--){
printf("%*.s|%.*s/%.*s\\%.*s|\n",z-n,"",r,dots,2*(n-r),dots,r,dots);
}
}
【问题讨论】:
-
您可以使用 boost::format 作为一种简单的解决方案
-
dots[2*n+1] = 0;在数组外写入 - 未定义的行为。