使用std :: cin中的std :: setw限制输入大小

塞巴斯蒂安·诺瓦克(Sebastian Nowak)

假设我有示例代码:

std::string s;
std::cin >> std::setw(4) >> s;
std::cout << s;

现在输入abcdef结果将是abc输入结果abc也将是abc问题是如何检查该字符串是否由于限制而在中间被拆分或结果字符串是实际的?我需要知道输入是否合适或是否跳过了某些数据。

迪特玛·库尔(DietmarKühl)

尽管我知道读入a时会考虑流的宽度char*,但我不知道读入a时也要考虑流的宽度std::string假设是这样,阅读将在以下三种情况下停止:

  1. 在这种情况下eof(),将完全读取流
  2. 下一个字符是空格。
  3. 读取需要读取的字符数。

也就是说,您可以检查in.eof()std::isspace(in.peek()好吧,std::ctype<char>您真的需要使用流中的有趣元素吗?

std::isspace(in.getloc(),
    std::char_traits<char>::to_char_type(in.peek()));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用std :: cin输入停止while循环

来自分类Dev

在opengl应用程序中使用std :: cin进行std :: thread和输入

来自分类Dev

来自无效输入的std :: cin无限循环

来自分类Dev

std :: cin无限循环输入错误

来自分类Dev

在VSCode中调试C ++期间将输入传递给std :: cin的问题

来自分类Dev

C ++中std :: cin和isdigit的问题

来自分类Dev

使用`std :: cin`为整数变量输入`char`时的不确定行为

来自分类Dev

向量大小受std :: cin影响吗?

来自分类Dev

std :: cin不会在输入错误时抛出异常

来自分类Dev

std :: cin:清空输入缓冲区而不会阻塞

来自分类Dev

std :: cin:清空输入缓冲区而不会阻塞

来自分类Dev

std :: cin不接受输入,程序立即关闭

来自分类Dev

为什么std :: cin同时接受多个输入?

来自分类Dev

std :: cin跳过空格

来自分类Dev

使用时如何重设std :: cin?

来自分类Dev

使用std :: cin忽略/跳过令牌

来自分类Dev

使用std :: cin忽略/跳过令牌

来自分类Dev

使用时如何重设std :: cin?

来自分类Dev

使用std :: regex过滤输入

来自分类Dev

scanf(),std :: cin在多线程环境中的行为如何?

来自分类Dev

'std :: cin >>'中'operator >>'的模棱两可的重载

来自分类Dev

std :: cin中的运算符>>不匹配

来自分类Dev

限制std :: exception_ptr的大小

来自分类Dev

限制std :: exception_ptr的大小

来自分类Dev

无法在C ++ 20中将std :: cin与char *或char []一起使用

来自分类Dev

如何使用一个填充空间使用std:out setfill std :: setw std:right格式化文本

来自分类Dev

使用 std::cin.getline() 后如何保留 std::cin 的缓冲区

来自分类Dev

std :: cin >> std :: string如何实现?

来自分类Dev

std :: cout << std :: cin有什么作用?

Related 相关文章

热门标签

归档