c语言刚才那里fopen里直接输入文件名路径要\\,为什么这样就可以用一个\

fflush(stdin);
gets(filename);
putchar(10);
if((fp=fopen(filename,"r+"))!=NULL)
在我电脑显示的路径也是只有一个\啊,这两者有什么不同吗
之前直接给文件命名是这样的,要是只用一个\就会找不到文件了

if((fp=fopen("G:\\abc.txt","r+"))!=NULL)

你写在源代码里是"\\",编译之后也是1个\,而且没引号
只因为\是转义符号,你写"G:\abc.txt" 那么\a会被看作一个字符,去解释。
想在字符串里表示\本身,需要用\把\转义,也就是\\。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-28
在计算机C语言编码中,反斜杠“\"是有特殊意义的。
反斜杠表示一个转义字符,单个斜杠不能使用,必须组合来用,详情可以百度百科。
转义字符与其后的信息组合 使得后面的信息不再是原有的意思,如:\n表示换行 \t表示一个TAB键。
只用一个\就会找不到文件了,就是因为\与其后的信息组合生成的文件名与你想要的文件名不相一致,所以你找不到。
如果想表示真正的一个反斜杠,必须采用\\的方式来显示。 所以会有这样的现象。来自:求助得到的回答
第1个回答  2014-11-28
‘\\’是转义字符表达方式,即内容实质为'\'
你用字符串读入方式内部存储的也还是一个'\'
可以通过printf("G:\\abc.txt");进行测试。
相似回答