C - 将小文件另存为字符串

时间:2009-11-09 02:39:01

标签: c string file

嘿伙计......在C中,我希望将当前工作目录中的文件(没什么花哨的)读成字符串。后来,我想把那个字符串打印掉,这样我就可以做一些工作了。我更习惯于Java,所以我在C上得到了我的印章,并希望得到如何做到这一点的解释!谢谢fellas ......

3 个答案:

答案 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)

您可以从fopenfread开始。