【发布时间】:2016-12-02 20:44:52
【问题描述】:
我在Reading a file character by character in C 找到了这段代码,它可以编译并且是我希望使用的。我的问题是我无法正常调用它。代码如下:
char *readFile(char *fileName)
{
FILE *file = fopen(fileName, "r");
char *code;
size_t n = 0;
int c;
if (file == NULL)
return NULL; //could not open file
code = malloc(1500);
while ((c = fgetc(file)) != EOF)
{
code[n++] = (char) c;
}
code[n] = '\0';
return code;
}
我不知道怎么称呼它。目前我正在使用以下代码来调用它:
.....
char * rly1f[1500];
char * RLY1F; // This is the Input File Name
rly1f[0] = readFile(RLY1F);
if (rly1f[0] == NULL) {
printf ("NULL array); exit;
}
int n = 0;
while (n++ < 1000) {
printf ("%c", rly1f[n]);
}
.....
如何调用 readFile 函数以使我有一个不为 NULL 的数组 (rly1f)?文件 RLY1F 存在并且其中包含数据。我之前使用“行内代码”而不是函数成功打开了它。 谢谢
【问题讨论】:
-
printf ("NULL array); exit;可能无法编译。 -
目前
RLY1F没有做任何事情。它只是一个空的char *指针。您需要为其分配文本文件的名称。类似char *RLY1F = "myfile.txt"; -
请注意
rly1f是char指针 的数组,因此printf ("%c", rly1f[n]);未定义,因为格式说明符不匹配。