有这样两段程序:
1.
string path;
cin>>path; //从键盘输入e:\a.txt
fopen(path,"r");2.
string path;
path="e:\a.txt";
fopen(path,"r");这样,第二段不能正确打开文件。我知道这是由于转义字符的问题。第二段应该是
path="e:\\a.txt";
可是为什么从标准输入流就不用使用\\呢?这是什么原理呢?
是否是因为输入流已经帮助做了转换?(用C的传统函数fscanf()也不会出问题)
请教!
1.
string path;
cin>>path; //从键盘输入e:\a.txt
fopen(path,"r");2.
string path;
path="e:\a.txt";
fopen(path,"r");这样,第二段不能正确打开文件。我知道这是由于转义字符的问题。第二段应该是
path="e:\\a.txt";
可是为什么从标准输入流就不用使用\\呢?这是什么原理呢?
是否是因为输入流已经帮助做了转换?(用C的传统函数fscanf()也不会出问题)
请教!
注意,流的基础是什么,会做自动转译的
path="e:\\a.txt";转义后path的值为e:\a.txt输入值的时候直接把
path的值填充为e:\a.txt,当然不需转换了
用cin接收键盘输入的时候当然只要输入一个了~~
我刚开始的时候就犯过这个错误,^_^