在C中使用fopen()指定文件名时,/,//,\,\\的重要性是什么?

时间:2014-07-10 06:37:34

标签: c fopen

我将我的程序放在下面。我试图通过使用两种方式之一给出不同格式的同一文件的名称来在屏幕上打印文本文件的内容 -

1.使用文件的硬编码名称

2.按用户记录文件名(用户输入地址)

#include <stdio.h>
#include <conio.h>
#include <string.h>

void main()
{
 FILE *fp;
 char ch;
// char str[30] = "d:\CPRog//triAl.tXT";
// char str[30] = "d:\Cprog//triAl.txt";
// char str[30] = "d:\CPRog\\triAl.tXT";
// char str[30] = "d:/\CPROG//triAl.tXT";
// char str[30] = "d:\\CPRog\\triAl.tXT";
// char str[30] = "d:/CPRog//triAl.tXT";
// char str[30] = "d:\CPRog/triAl.tXT";
// char str[30] = "d:/CPRog/triAl.tXT";
// char str[30] = "d:\CPRog/triAl.tXT";

 char str[30] = "D:\Cprog\trial.txt";

 clrscr();

// printf("\nEnter path of file to open : ");
// gets(str);
 fp = fopen(str,"rt");
 if(fp == NULL)
 {
   printf("\nError in opening file !");
   getch();
   exit();
 }
 while(!feof(fp))
 {
  ch = fgetc(fp);
  fputc(ch,stdout); // Print the character on screen.
 }
 fclose(fp);
 getch();
}

如果是硬编码地址,程序会打印所有评论格式的文本文件内容。它显示消息

打开文件时出错!

表示当前的硬编码地址。


如果是用户输入地址,我尝试了这些 -

  1. D:\ cprog \ trial.txt:打印文件内容。

  2. D:\ cprog \\ trial.txt:打印文件内容。

  3. D:/cprog//trial.txt:打印文件内容。

  4. D:/ cprog / \ trial.txt:打印文件内容。

  5. D:/cprog/trial.txt:打印文件内容。

  6. D:\\ cprog \\ trial.txt:无输出

  7. D://cprog//trial.txt:无输出

  8. D:\\ cprog \ trial.txt:无输出

  9. D://cprog/trial.txt:无输出

  10. 为什么硬编码和用户输入方法的指定地址格式有所不同? 还有为什么有些格式显示输出而有些格式不在这两种方法中?在指定地址时,/,\,//,\,/ \有什么意义?

1 个答案:

答案 0 :(得分:0)

我认为一个/很好或\\很好,但\是一个特殊字符,因为它用于转义特殊字符。因此,\t(例如)是一个标签(在源代码中)。如果用户输入&#39; \ t&#39;你得到相当于&#39; \&#39;并且&#39;