1
FILE * pFile;
pFile = fopen ("myfile.txt","r");
if (pFile == NULL)
{ some code }

pFile = fopen ("myfile.txt","r")

在这种情况下,将分配给pFile什么?因为pFile是一个指针,它只存储另一个变量的地址。我想知道“myfile.txt”是一个字符串吗?那么是不是 pFile = 存储字符串“myfile.txt”的数组地址?

4

4 回答 4

2

它指向一个FILE对象。细节取决于实现,不会影响用户代码。但它通常是一种结构,其中包括对特定于操作系统的文件处理机制的各种引用。

这是一个不透明指针的例子。

于 2013-03-12T09:10:04.897 回答
1

看看:http ://www.cplusplus.com/reference/cstdio/fopen/

如果文件成功打开,该函数返回一个指向 FILE 对象的指针,该对象可用于在将来的操作中识别流。否则,返回一个空指针。

于 2013-03-12T09:10:52.210 回答
0

它是一个指向FILE结构的指针,其中包含操作系统代表您访问文件所需的所有信息。

你不应该fopen在 C++ 中使用;你应该使用 astd::ifstream代替。

于 2013-03-12T09:10:05.583 回答
0

从 fopen 手册页:

SYNOPSIS
       #include <stdio.h>

       FILE *fopen(const char *path, const char *mode);

       FILE *fdopen(int fd, const char *mode);

       FILE *freopen(const char *path, const char *mode, FILE *stream);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       fdopen(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE

DESCRIPTION
       The fopen() function opens the file whose name is the string pointed to by path and associates a stream with it.

所以返回的指针用于访问文件的流。

于 2013-03-12T09:12:05.017 回答