假设我有一个循环:
for(int i=1; i<=1024; i++)
我想填充128列(不是行!)的文件,因此第一列包含1到8的数字,第二列包含9到16的数字,依此类推。
请帮助
答案 0 :(得分:0)
最简单的方法是创建两个循环 - 第一个按行排列并按列嵌套 - 然后使用简单的数学表达式计算数字。 E.g:
for(int line = 0; line < 8; line++)
{
for( int col = 0; col < 128; col++)
{
cout << setw(5) << line + col * 8 + 1;
}
cout << endl;
}
setw()
具有参数5,以便为具有1到1024的数字的列设置相同的宽度
已编辑:
如果您只想使用一个for
循环并且问题与您提供的完全相同,则可以使用更复杂的数学表达式。
首先,让我们计算行数为(i-1) / 128
(数字从0开始),列数为(i-1) % 128
(数字从0到127)。现在,您可以使用额外的新行条件输出进行以下循环:
for(int i=1; i<=1024; i++)
{
cout << setw(5) << ( 1 + 8 * ((i-1) % 128) ) + ( (i-1) / 128 );
if( i % 128 == 0 ) // new line once per 128 numbers
cout << endl;
}
当然,如果您想创建文件,您应该对输出执行某些操作 - 将标准输出重定向到文件或将cout
更改为其他流。
答案 1 :(得分:0)
每列的项目仅为8i到8i + 7。你可以编写多个循环。for(int i = 0; i< 128;i++)
for(int j = 0; j <8;j++)
int k = 8* i+ j;
答案 2 :(得分:0)
Double doubleValue=0.0001;
DecimalFormat f = new DecimalFormat("##.0000");
String formattedValue = f.format(doubleValue);
BigDecimal bigDecimalValue = new BigDecimal(formattedValue);
bigDecimalValue.stripTrailingZeros();
说明: 因为我们需要8行所以我们调用函数write_in_file 8次。每次函数write_in_file都会在文件中写入128个条目。