c – 输入迭代器跳过空格,以任何方式防止这种跳过
我正在从一个文件读取一个字符串,直到我达到一个分隔字符,美元符号.但输入迭代器正在跳过空格,因此创建的字符串没有空格.在这种情况下不是我想要的.有没有办法阻止跳绳行为?如果是这样怎么样?
这是我的测试代码. #include <iostream> #include <fstream> #include <iterator> #include <string> // istream iterator is skipping whitespace. How do I get all chars? void readTo(std::istream_iterator<char> iit,std::string& replaced) { while(iit != std::istream_iterator<char>()) { char ch = *iit++; if(ch != '$') replaced.push_back(ch); else break; } } int main() { std::ifstream strm("test.txt"); std::string s; if(strm.good()) { readTo(strm,s); std::cout << s << std::endl; } return 0; } 解决方法
因为默认情况下将流配置为跳过空格,所以请使用
noskipws(strm); 标准:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 要选择哪个数据库(Cassandra,MongoDB??)来存储和查询事件
- ExtJs4_ContactUsForm(联系我们FOMR示例)浅析;
- C#程序中session值的保存方法以及转为字符串的方法总结
- (开源)基于vue, react, node.js, go开发的微商城(含微信小
- PostgreSQL 9.5.5主从实现之异步流复制(Hot Standby)
- 使用script的src实现跨域和类似ajax效果
- ruby-on-rails – 如何在Rails中访问模型上的当前主机和端口
- 《从零开始学Swift》学习笔记(Day 14)――字符串的插入、
- 人人都看得懂的正则表达式教程
- 未能正确加载程序集或它的依赖项