【发布时间】:2019-09-09 03:17:23
【问题描述】:
我有一个类的编程作业,其中输出必须与文件的内容完全匹配。对于这个问题,我必须使用一个循环来连续打印出具有指定格式的值。我的问题是在循环完成时停止出现最后一个换行符。
由于类策略的原因,我无法包含我的实际代码或我想要完成的最终目标,但假设我正在尝试使用 for 循环打印出数字的阶乘。我想用行分隔答案,除了我不希望最后一个在它下面开始一个新行。我怎样才能解决这个问题,而无需提前停止新的或事后创建另一个循环?
int count;
int number; // some random value
int sum = 1;
for(count = 1; count <= number; count++)
{
sum *= count;
printf("Current Sum: %d\n", sum);
}
假设数字是 3。 我期望输出:
Current Sum: 1
Current Sum: 2
Current Sum: 6 //ends here, no newline
但是,我得到:
Current Sum: 1
Current Sum: 2
Current Sum: 6
//new line that I don't want
【问题讨论】:
-
如果在循环的开头而不是结尾输出换行符会发生什么?也许是一个简单的
putchar ('\n');? -
非常邪恶,但有效:
printf("Current Sum: %d%s", sum, &"\n"[count>=number]);