如何使用FILE * fp和fopen读取文件?

时间:2012-12-03 19:22:27

标签: c

因此,对于这项任务,我应该阅读一个文件,并对内容进行处理。现在我只想打开文件,阅读它并打印出它有多少行。我相信我有正确的代码可以这样做,但我不知道如何阅读"或连接到我的程序之外的文件!我正在使用

FILE *fp = NULL; 
fp = fopen ();

部分对吗?这是如何打开/连接到文件?但不确定这是做什么的,以及它如何连接到程序之外的文件。要读取文件,我让用户输入文本文件,如

printf ("Enter the name of the data file: ");
scanf ("%[^\n]", &filename);

然后阅读我放

fp = fopen("&filename", "r");

但这似乎不对,但它不起作用。任何人都可以解释我做错了什么,以及我如何读取用户输入的文件?如果有意义,我在SSH矩阵组中,就像我使用ssh终端登录putty一样?不确定如何解释它,但它是我的学校在线SSH的事情......

1 个答案:

答案 0 :(得分:1)

fp = fopen("&filename", "r");

filename是可变的,为什么要在""双引号中传递它。

尝试以下内容:

char filename[50]; // need a character array or buffer to hold the filename

printf ("Enter the name of the data file: ");
scanf ("%[^\n]", filename);   // no & operator

现在使用

fp = fopen(filename, "r");   // filename variable should contain complete path 

                              //with the actual file name

我认为这应该有用。

您还需要将fp检查为

if(fp == NULL)   // It's always a safe way to proceed
   printf("Error in file opening\n");