经验 windows目录\在实际开发中使用/代替

#include <boost\shared_ptr.hpp>尽量不要使用\,而是使用/,这样子方面移植代码到Linux 环境下

代码如下:

#include "stdafx.h"

#include <iostream>

#include <fstream>

#include <string>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

char utfBuffer[256] = {0};

ifstream  utffile("E:/doc/Android/Makefile");//OK

//ifstream  utffile("E:\doc\Android\Makefile");//ERROR

//ifstream  utffile("E:\\doc\\Android\\Makefile");//OK

utffile.getline(utfBuffer, 100);

size_t inLen = strlen(utfBuffer);

return 0;

}

总结:

第一种方案采用和Unix系统一样的斜杠,方便在以后的开发中移植到Linux平台,毕竟头文件include中斜杠的修改比较麻烦。

第三种方法采用双反斜杠,告诉编译器前面的反斜杠不是用来屏蔽转义的,而是实实在在存在的。

第二种错误方案,详细分析:

拆分字符串:

char utfBuffer[256] = {0};

char szPathName[256] ={"E:\doc\Android\Makefile"};

ifstream  utffile(szPathName);

utffile.getline(utfBuffer, 100);

size_t inLen = strlen(utfBuffer);

return 0;

通过单步调试szPathName的实际内容变成:"E:docAndroidMakefile"  编译器认为\是用来禁止转义用的,而没有想到用户实际上是作为反斜杠,因此将其清除,导致读取文件路径失败

时间: 2024-11-09 09:43:39

经验 windows目录\在实际开发中使用/代替的相关文章

C#学习(九)之Windows Store App &amp; WP 开发小记(一)

由于课程已经讲述完毕,所以本次学习记录就讨论记录一下我在Windows Store App & WP开发中遇到的一些问题与收获. 一.数据库(Sqlite)的使用 虽然资料很难找,但sqlite在这两个平台的使用还是很简单的. 首先是环境配置阶段: 1.工具->拓展与更新->联机,然后在右上搜索sqlite,之后下载安装下图两个打勾的拓展包,注意要重启VS方才生效. 2.项目->管理NuGet程序包->联机,搜索sqlite,安装下图打勾内容,如果项目多出下图两个文件即安装

Windows Phone 8.1开发:如何让ListView下拉加载更多?

Windows Phone 8.1开发中使用ListView作为数据呈现载体时,经常需要一个下拉(拇指向上滑动)加载更多的交互操作.如何完成这一操作呢?下面为您阐述. 思路是这样的: 1.在ListView的loaded事件中,获取ListView中的ScrollView对象. 如何获得ScrollViewer,这篇文章说的很清楚! Windows Phone 8.1开发:如何从ListView中,获取ScrollViewer对象 2. 给ScrollViewer创建事件,上篇文章也说了. 3.

Windows Phone 8.1开发:如何让ListView滚动到顶部,回到第一条?

Windows Phone 8.1开发中,ListView向下滑动了半天,用户如果突然想回头看看第一条数据怎么办? 如何让listView滚动到顶部,回到第一条? 很简单,一行代码.调用ListView的ScrollIntoView()方法就好~ listView1.ScrollIntoView(listView1.Items.First());

windows phone 8.1开发:磁铁|Tile更新

原文出自:http://www.bcmeng.com/tile/ 上一篇给大家分享了toast通知操作的方法,这一篇文章我们就来看windows phone 8.1开发中的磁铁更新.磁铁是windows phone手机的一大亮点,小梦本人也十分喜欢.而更新磁铁也是许多应用都需要的功能.其实磁铁的更新和toast通知的方法几乎是一样的,因为它们的本质都是一个XML文件. 选择磁铁模板: 磁铁的模板十分多,具体可以浏览: http://msdn.microsoft.com/zh-cn/library

windows phone 8.1开发:锁屏提醒

原文出自:http://www.bcmeng.com/lockscreen/ 之前小梦和大家分享了toast通知,磁铁更新,今天小梦和大家分享windows phone 8.1开发中的锁屏提醒.相比toast通知和磁铁更新,锁屏提醒十分简单.锁屏提醒有俩种:数字提醒和字形提醒,在Windows Phone 8.1中,手机锁屏提醒仅支持“警报”和“注意”状态字形以及数字.向手机发送任何其他字形将清除锁屏提醒.其支持字形如下: 状态 字形 XML 无 未显示锁屏提醒 <badge value="

ibatis 开发中的经验 (三)ibatis与spring2集成配置

ibatis项目中用到了一些基本配置,需要和spring集成,看了看这些配置大部分同hibernate中是一样的,也比较好理解,只是需要他们的配置中每个类的含义,还有其中的一些细节还是需要我们了解的,知识不在多,而在不断吸收和重复,在使用和练习中加深对各种问题的理解. 读取属性文件配置 <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceho

开发中各种小经验或技巧

1.js.jsp种判断list长度 js  :  list.length jsp: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>            list的长度是:${fn:le

ibatis 开发中的经验 (一)ibatis 和hibernate 在开发中的理解

这个项目的底层是用ibatis框架完毕,这几天也是都在用这个框架写代码,也有了一些简单的理解,把项目拿过来后基本的配置都已经配置好了,比方一些事务.日志控制等,在开发中主要用到的是写SQL语句以及熟悉ibatis xml文件都提供的一些标签,这些标签大部分是用来处理推断.逻辑,使得sql能够动态组装变的更灵活. 在写代码的工作量上ibatis要比hibernate高一些,在你写了服务层后还须要些dao层,dao层实现,然后这些在hibernate中不须要自己写,仅仅写到服务层就能够调用hiber

C#开发中Windows域认证登录2016(扩展吉日嘎拉GPM系统V4.2)

2013年搞公司的OA时,为了统一用户登录,将Windows AD的用户和OA的账号对接,OA用户名的规则就是使用Windows AD的用户名,格式举例:Troy.Cui,原理就是先进行域服务器的认证,认证完毕使用自定义的函数根据用户名读取出OA的用户信息,然后读取出用户名和密码信息,最后使用获取到的用户名和密码进行正常的登录.当时的文章:<C#开发中Windows域认证登录2(扩展吉日嘎拉GPM系统)>,本周打算OA中开发在线培训的功能,也想借此机会升级一下底层的应用DotNet.Busin