c++读取文件中字符,不过滤空白符
来源:互联网 发布:博然视频监控 软件 编辑:程序博客网 时间:2024/05/16 03:40
1)问题描述
C++读取一个文本文件时,直接用流的 >> 方法会自动把空白符作为输入的分界符,所以如下代码存在问题
比如有test.txt文件
my name is zhccl
当用 infile>>c 读到 "my" 的 “y” 之后,下一个会自动滤过 空格符 因为空格符是作为一个标准输入的非有效字符,下一次会读入 ”n“ 所以整段代码会读入word=”mynameiszhccl“
并不会分别读到 my,name,is,zhccl
2)解决方案
1.用 infile.getline(),来解决,一次读到一个 "\n" 为止,再来用空白符作为分界符来解释 word[]
2.用 infile>>noskipws; 来强制读入每一个字符,不过滤空白符,包括换行符。
代码如下:
这儿有点问题,就是文件最后必须是一个 ”\n“ ,否则程序会崩溃,我正在纳闷这一点。
持续更新:
找到原因了,在文件 test.txt
my name is zhccl
当准备读 ”zhccl“ 时,此时while(!infile.eof())判断通过,然后会一直读,infile>>c 知道已经读到文件结尾了,此时infile=0,我们并没有去验证inflie是否到末尾,所以c的值保持前一次读入字符 ”l“ ,并不从文件读入字符来更新,即最后一个读入的字符串为”zhccllllllllllll.....“ 直到 word[] 溢出,出错。
改正方法:
检查infile情况
或者二次检查是否到文件结束
阅读全文
0 0
- c++读取文件中字符,不过滤空白符
- c++读取文件中字符,不过滤空白符
- C语言空白字符读取问题
- iOS--NSString---过滤换行符和空白字符
- cin读取字符直至再次遇到空白符,读取终止
- C语言中空白字符与空字符的区别
- java-读取文件,过滤敏感字符后生成新文件
- JS过滤空白文件节点
- 关于从txt文件读取字符,怎么过滤空格,回车,换行符等。
- 过滤ANSI文件中特殊“€”分隔符,过滤其他字符
- 对C标准中空白字符的理解(转)
- 过滤字符串中不属于指定集合的字符
- C语言fgetc()函数:读文件函数(由文件中读取一个字符)
- check文件内空白字符
- 过滤html字符(c#)
- 过滤html字符(c#)
- iOS开发笔记之NSString 过滤空白字符和换行符
- C++ 读取包含空白字符的字符串
- C++ this 指针详解
- 面向对象语言的五个基本特征
- Java中String和byte[]间的转换浅析
- .Net使用DES解密发生“数据不正确”的错误
- MLMA 运输方式打印装袋标签
- c++读取文件中字符,不过滤空白符
- idea 同一面板创建多个项目
- Docker简介与使用(一)
- 【JavaSE学习笔记】泛型,jdk5之后新特性
- Java编程思想之持有对象
- 安装配置Supervisor
- poj 1062 昂贵的聘礼
- 活动选择问题
- Python标准库-------