c++文件读取(一)---输入类使用和查找当前程序路径
鉴于公司人员流动大,设计一个小的日志定位器,首先要读取日志文件
用输入输出流类操作文件比c的stdio更安全和容易,当然任何此类观点都是对大牛除外
首先是查找当前文件路径,如果用GetCurrentDirectory函数的话
问题一:记得不能在打开文件之后,因为这个是当前进程当前目录,而不是进程的镜像文件(.exe)路径,怎么理解呢
假如exe放在:d:\用户目录\我的文档\visual studio 2012\Projects\file,调用GetCurrentDirectory之前如果操作 d:\用户目录\txt 下的文件,那么,最后返回的路径是 d:\用户目录\txt
问题二:
CHAR pathstr[100] ;
GetCurrentDirectory(MAX_PATH,pathstr); 这样用的话 "CHAR *" 类型的实参与 "LPWSTR" 类型的形参不兼容
就算 CHAR pathstr[100] 改成 TCHAR pathstr[100]
此时cout pathstr结果却明显是指针的地址(因为要输出的带中文,跟代码是没有问题的)


有人会说wcout,宽字符输出,其实还是有问题,如下:

其实只要在工程属性里改字符节属性即可,如下


这样最后小工具就可以找到自己的路径,也就可以读取这个路径下的文件,至于怎么遍历这个路径下的文件将放到下一篇
下面输入流使用的教程很多,只放一些简单的代码和最后的效果运行图:
//ifstream inFile;
//inFile.open("test.txt");
ifstream inWordFile("test.txt"); string str;
vector<string> vec;
while(inWordFile >> str)
{
vec.push_back(str);
}
vector<string>::iterator iter;
for(iter = vec.begin();iter != vec.end();iter++)
{
cout << *iter << endl;
}
//string linestr;
//while(getline(inWordFile,linestr)) ---读取行是ok的,只是注释掉而已
//{
// cout << linestr << endl;
//}

运行效果图:

c++文件读取(一)---输入类使用和查找当前程序路径的更多相关文章
- 关于heritrix安装配置时出现”必须限制口令文件读取访问权限”的解决方法
转载:http://www.floatinglife.cn/关于heritrix安装配置时出现必须限制口令文件读取访问 最近开始写一个RSS聚合程序,需要爬虫支持,于是就整来heritrix,没想到, ...
- 配置文件——App.config文件读取和修改
作为普通的xml文件读取的话,首先就要知道怎么寻找文件的路径.我们知道一般配置文件就在跟可执行exe文件在同一目录下,且仅仅在名称后面添加了一个.config 因此,可以用Application.Ex ...
- FileInputStream 读取文件数据的输入字节流
package com.inputstream; /* File类: 用于描述一个文件或者文件夹的. 通过File对象我们可以读取文件或者文件夹的属性数据,如果我们需要读取文件的内容数据,那么我们需要 ...
- [Python] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题
最近研究搜索引擎.知识图谱和Python爬虫比较多,中文乱码问题再次浮现于眼前.虽然市面上讲述中文编码问题的文章数不胜数,同时以前我也讲述过PHP处理数据库服务器中文乱码问题,但是此处还是准备简单做下 ...
- //读取配置文件(属性文件)的工具类-ConfigManager
package com.pb.news.util; import java.io.IOException;import java.io.InputStream;import java.sql.Resu ...
- 读取Excel文件存储在实体类中
1.Maven文件 <!--读取Excel的架包--> <dependency> <groupId>org.apache.poi</groupId> & ...
- CSV文件读取类
最近项目中,经常需要读取Csv文件.基本步骤是: (1)按行读取 (2)然后将一行数据按逗号,分割为字符串数组 (3)将各列字符串转换成相应类型的数据 ,如int double类型 写了一个简单的Cs ...
- 文件读取工具类读取properties文件
1.创建工具类 import java.io.IOException; import java.util.Properties; /** * * 类名称:PropertiesUtil * 类描述: 文 ...
- 读取xlsx文件的内容输入到xls文件中
package com.cn.peitest.excel; import java.io.File; import java.io.FileInputStream; import java.io.Fi ...
随机推荐
- permutation test
- Angular - - angular.forEach、angular.extend
angular.forEach 调用迭代器函数取每一项目标的集合,它可以是一个对象或数组.迭代器函数与迭代器(value.key)一起调用,其中值是一个对象属性或数组元素的值,而数组元素是对象属性的关 ...
- Mysql中常见索引操作
- C++第二天学习
回顾: 1.第一个C++程序 头文件 输入输出 名字空间 using namespace std; 扩展名 编译方式 g++ 2.名字空间 3.结构.联合.枚举 4.字符串 标准库提供的表示字符串的类 ...
- Intent的属性及Intent-filter配置——Data、Type属性与intent-filter配置
Data属性通常用于向Action属性提供操作的数据,Data属性接受一个Uri对象,一个Uri对象通常通过如下形式的字符串来表示: content://com.android.contacts/co ...
- c#中struct和class的区别
1.struct 是值类型,class是对象类型 2.struct 不能被继承,class可以被继承 3.struct 默认的访问权限是public,而class默认的访问权限是private. 4. ...
- MyBatis 插入时返回自增主键
XML <insert id="insert" parameterType="com.stone.model.Person"> <!-- se ...
- node源码详解(四) —— js代码如何调用C++的函数
本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/nodesource4 本博客同步在https://cnodejs.o ...
- HttpClient 4.3连接池参数配置及源码解读
目前所在公司使用HttpClient 4.3.3版本发送Rest请求,调用接口.最近出现了调用查询接口服务慢的生产问题,在排查整个调用链可能存在的问题时(从客户端发起Http请求->ESB-&g ...
- linux命令行模式下对FTP服务器进行文件上传下载
参考源:点击这里查看 1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码 ...