嘿伙计......在C中,我希望将当前工作目录中的文件(没什么花哨的)读成字符串。后来,我想把那个字符串打印掉,这样我就可以做一些工作了。我更习惯于Java,所以我在C上得到了我的印章,并希望得到如何做到这一点的解释!谢谢fellas ......
答案 0 :(得分:2)
您将使用:
FILE *f = fopen(filename, "r");
打开文件。如果返回非null,则可以使用:
char buf[MAXIMUM_LINE_SIZE]; /* pick something for MAXIMUM_LINE_SIZE... */
char *p;
while ((p=fgets(buf, sizeof(buf), f)))
{
/* Do something with the line pointed to by p */
}
要做更复杂的事情(不受任意大小限制或跨越多行),您需要了解动态内存分配:函数malloc()
,realloc()
,{{1} } ...
一些帮助您的链接:
另外,只是把它扔出去:如果你有兴趣编写C ++而不是C,那么它也有自己的文件I / O和字符串,你可能会觉得有用,而且你不必全部自己分配内存。但即便如此,也很了解C方式。
答案 1 :(得分:2)
这是一个C程序,它将读取文件并将其作为字符串打印。文件名作为参数传递给程序。错误检查是一件好事。
int main(int argc, char *argv[])
{
FILE *f;
char *buffer;
size_t filesize;
f = fopen(argv[1], "r");
// quick & dirty filesize calculation
fseek(f, 0, SEEK_END);
filesize = ftell(f);
fseek(f, 0, SEEK_SET);
// read file into a buffer
buffer = malloc(filesize);
fread(buffer, filesize, 1, f);
printf("%s", buffer);
// cleanup
free(buffer);
return 0;
}
答案 2 :(得分:1)
您可以从fopen
和fread
开始。