读取文件到内存? [英] Read file into memory?

查看:101
本文介绍了读取文件到内存?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我似乎可以只读文件到内存中,如果我明确声明的缓冲区大小。这适用

 的#include<&stdio.h中GT;
诠释主(){
  FILE *计划生育=的fopen(test.log中,RB);
  字符缓冲区[37];
  FREAD(缓冲,1,36,FP);
  的printf(%S,缓冲区);
}

这将增加垃圾到输出

 的#include<&stdio.h中GT;
诠释主(){
  FILE *计划生育=的fopen(test.log中,RB);
  fseek的(FP,0,SEEK_END);
  长SIZ = FTELL(FP);
  倒带(FP);
  炭缓冲液[SIZ + 1〕;
  FREAD(缓冲,1,SIZ,FP);
  的printf(%S,缓冲区);
}


解决方案

插入缓冲[SIZ] ='\\ 0'; 的printf( %S,缓冲区);

I can seem to only read file into memory if I explicitly declare the buffer size. This works

#include <stdio.h>
int main(){
  FILE *fp = fopen("test.log", "rb");
  char buffer[37];
  fread(buffer, 1, 36, fp);
  printf("%s", buffer);
}

This will add junk to the output

#include <stdio.h>
int main(){
  FILE *fp = fopen("test.log", "rb");
  fseek(fp, 0, SEEK_END);
  long siz = ftell(fp);
  rewind(fp);
  char buffer[siz + 1];
  fread(buffer, 1, siz, fp);
  printf("%s", buffer);
}

解决方案

insert buffer[siz]='\0'; before printf("%s", buffer);

这篇关于读取文件到内存?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆