我正在写一个C库。我想将此函数的文件内容返回给调用者。
如何将文件内容转换为char []?
由于我在我的C代码中使用perl.h,因此fopen崩溃了。 有什么其他方法可以将文件转换为char数组,除了打开&读文件?这是我的代码:
FILE* fp = fopen("console.txt", "r");
char message[1024];
strcpy(message,"\n");
char buf[80];
while(!feof(fp))
{
fgets(buf, sizeof(buf)-1, fp);
strcat(message, buf);
}
答案 0 :(得分:2)
malloc
)。read
)。不要忘记检查这些步骤之间的错误。
答案 1 :(得分:1)
你需要做一些事情
答案 2 :(得分:1)
试试这段代码。该函数返回带有文件内容的字符串,只需打印它即可。
#include <stdio.h>
#include <stdlib.h>
char *readFile(char *filename)
{
char * buffer = 0;
long length;
FILE * f = fopen (filename, "r");
if (f)
{
fseek (f, 0, SEEK_END);
length = ftell (f);
fseek (f, 0, SEEK_SET);
buffer = malloc (length);
if (buffer)
{
fread (buffer, 1, length, f);
}
fclose (f);
}
return buffer;
}
int main()
{
char *content=readFile("D://test1.xml");
printf("%s",content);
return 0;
}
答案 3 :(得分:0)
需要更多信息才能给出一个好的答案,因为需要文件的内容和性质。
但一般来说,
如果是文本文件,请参阅stdio
库 - 您可以获取长度,创建数组并填充它。否则(二进制文件)解析它将是一个好主意并返回一个数据结构 - 更有用