用c+格式设置文本格式+;方式 我尝试制作一个C++函数,可以格式化我的文本输出:

用c+格式设置文本格式+;方式 我尝试制作一个C++函数,可以格式化我的文本输出:,c++,C++,#0 id:80 #1 id:80 #2身份证号码:80 #3 id:80 等等 在函数中有一个名为max的参数来限制输出量,如: 如果最大参数设置为10,则最多只能打印/输出10次: #0 id:80 #1 id:80 #2身份证号码:80 #3 id:80 #4身份证号码:80 #5 id:80 #6 id:80 #7 id:80 #8 id:80 #9 id:80 #10 id:80 我试图做的是下面的代码,但它没有按照我想要的那样工作: void format_text(int max)

#0 id:80

#1 id:80

#2身份证号码:80

#3 id:80

等等

在函数中有一个名为max的参数来限制输出量,如:

如果最大参数设置为10,则最多只能打印/输出10次:

#0 id:80

#1 id:80

#2身份证号码:80

#3 id:80

#4身份证号码:80

#5 id:80

#6 id:80

#7 id:80

#8 id:80

#9 id:80

#10 id:80

我试图做的是下面的代码,但它没有按照我想要的那样工作:

void format_text(int max){

char Buffer[100];

static int amount;

for (int x = 0; x <= max; x++){

amount ++;

if (max > amount){

length += sprintf(Buffer+length,"#%d id: %d\n", amount, 80);

printf("%s", Buffer);

}
void格式_文本(int max){
字符缓冲区[100];
静态整数量;
对于(整数x=0;x金额){
长度+=sprintf(缓冲区+长度,#%d id:%d\n),数量,80);
printf(“%s”,缓冲区);
}

请帮助我创建一个我为您描述的函数

也许您想要的是一个
ostringstream

std::string Buffer;
std::ostringstream oss;

//...
    oss << "#" << amount << " id: " << 80 << "\n";
//...

Buffer = oss.str();
std::字符串缓冲区;
std::ostringstream oss;
//...

oss也许你想要的是一个
ostringstream

std::string Buffer;
std::ostringstream oss;

//...
    oss << "#" << amount << " id: " << 80 << "\n";
//...

Buffer = oss.str();
std::字符串缓冲区;
std::ostringstream oss;
//...

oss(您在“it most print/output only 10 times”之后的示例包含11行。)
static
表示您第二次调用
format\u text
amount
仍将具有与第一次调用结束时相同的值。这是有意的吗?(您在“it most print/output only 10 times”之后的示例)包含11行。)
静态
表示第二次调用
格式文本
金额
仍将与第一次调用结束时的值相同。这是故意的吗?