当前位置:C++技术网 > 资讯 > 巧妙处理转义字符“\”,正反斜杠互换互用,瞬间方便省事了

巧妙处理转义字符“\”,正反斜杠互换互用,瞬间方便省事了

更新时间:2015-07-17 16:56:21浏览次数:1+次

    我相信你肯定知道文件路径这个东西,比如C:\1.jpg。或者更长一点的,C:\Users\Administrator\Documents\Visual Studio 2015\Projects\test\test.sln 。
    当然,你写过程序,也可能写过要使用文件路径的代码吧。比如,你要读写一个txt文件,或者要用外部图片设置窗口背景图片,那么就要图片的路径,诸如此类。
    然而,你在写代码时,编译运行,是不是发现经常指定路径的文件似乎没有用,读取不了呢?肯定会的。反正我一开始的时候,什么也不懂。也经常发现,路径不对吗,怎么文件打开没反应呢?
    然后就知道了,原来文件路径的“\”是转义字符。在C/C++语言中,“\”用来转义系统符号。当编译器发现一个“\”开头,就会去读下一个字符,组合起来就是一个由转义字符配对的一个字符,其实就是系统保留符号。最常见的就是"\n",用于换行。如果不要“\”,那就是字母“n”了,这样就没法输出换行符,那么此时就用这个转义字符组合形成这个换行符。当然,如果要输出“\”本身,那么直接输入一个“\”是不行的,因为编译器遇到这个,就会当作转义字符,所以,需要再加一个,表示第一个是转义字符,第二个就是反斜杠字符“\”,结果就是“\\”。
    这个转义字符在C/C++,Windows程序,MFC程序都是如此。所以,在写文件路径的时候,要正常输出这个反斜杠作为路径的一个字符,那么就需要多写一个反斜杠,如C:\\1.jpg。如果是这个短的,还无所谓。那如果是上面那个长的,或者假如反斜杠有十几个,那岂不是烦死人了。
    实际上,在写路径时正斜杠和反斜杠可以互换的。这一点,就是突破口了。正斜杠不是转义字符,因此就不用多写一个斜杠了。此时你把程序中的一个文件地址复制出来,直接可以用。而假如你把带有反斜杠的双斜杠的文件地址复制出来,你还要一个个删掉多余的反斜杠,是不是加也麻烦,删也麻烦呢。但是使用正斜杠,就没有这个问题了哦。
    还有一个小疑惑,大家可能也对正斜杠与反斜杠的区别有不理解吧。
    正斜杠最常用的就是URL,也就是域名网址,比如C++技术网的网址:http://www.cjjjs.com/paper/gzsh/7172015593814463.aspx ,看看是不是很多正斜杠呢。而文件系统的就全部是反斜杠。其实正斜杠和反斜杠是可以互换互用的。网址中的正斜杠和反斜杠也是没有区别的,你可以去试试。事实上,网站系统的后台,实际上也是一个文件系统,网址中的一级级的层次,也就可以看出网站文件夹的层次结构,和你电脑的文件夹没有什么两样,都是一个妈生的。所以你可以这样写:http://www.cjjjs.com\paper/gzsh\7172015593814463.aspx,照样能够正常访问页面。
    遵从这个正反斜杠互换互用的原则,那么以后在处理文件路径时是不是就不再烦恼了呢?输网址的时候,是不是也不在担心记错是正斜杠和反斜杠了呢?