【发布时间】:2017-02-15 06:33:57
【问题描述】:
我正在尝试使用 set width setw 将字符串输出到输出文件,但是我无法使其工作。我有以下示例。
// setw example
#include <iostream>
#include <iomanip>
#include <fstream>
int main () {
std::ofstream output_file;
output_file.open("file.txt");
output_file << "first" <<std::setw(5)<< "second"<< std::endl;
output_file.close();
return 0;
}
编辑:
有了上面的几行,我希望在first 和second 之间有很多空格,比如
first second
我几乎看不到任何空格,输出就像firstsecond
我想我错过了setw()的工作
注意:对于整数,它可以正常工作:
output_file << 1 <<std::setw(5)<< 2 << std::endl;
我做错了什么??
【问题讨论】:
-
尝试在小于五个字符的字符串上使用它(
"second"是六个字符长)。请注意,...<< setw(5) << 123456 <<...也不会“工作”。 -
“我无法让它工作。” - 如果我们都知道(a)您对“工作”的定义是什么,以及(b)实际发生了什么以及它与(a)有何不同,也许您的问题会更有意义。您是否希望输出中有某种 truncation ?如果是这样,您的问题应该说明这一点。
-
@Someprogrammerdude 谢谢!!如果我需要
first和second之间的空格,为什么它需要six chars long,所以它与空间无关。 -
@WhozCraig 谢谢,实际上我在
first和second之间没有任何空格。 -
让我换种说法:把你希望得到和你实际得到的例子放在输出在你的问题中。我怀疑问题是您根本不了解std::setw 操纵器的功能。