gpt4 book ai didi

c++ - 输入流的 std::setfill 和 std::setw?

转载 作者:行者123 更新时间:2023-11-28 05:16:33 27 4
gpt4 key购买 nike

考虑这段代码:

int xx;
std::cin >> std::setfill('0') >> std::setw(4) >> xx;

当发送 12 到标准输入时,我期望 xx 的值为 1200 并且当发送 12345 我希望它是 1234

但是,似乎 std::setfillstd::setw 没有效果,我得到 1212345 分别。

这是错误还是符合标准?有什么好的方法可以获得预期的功能吗?

另请注意,当我将 xx 的类型更改为 std::string 时,std::setw 生效,而 std::setfill 仍然没有。

我的编译器是gcc-7.0.1

最佳答案

根据C++标准,setfill属于输出流。对于setw,当与char*string一起使用时,它适用于输入流。例如,以下程序输出 abcd 用于输入字符串 abcdef(以及 1234 用于 123456):

string a;
cin >> setw(4) >> a;
cout << a;

关于c++ - 输入流的 std::setfill 和 std::setw?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42530114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com