已知文件指针file *,如何把文件内容输出到屏幕上,求帮助!

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
zero_hsy
帖子: 37
注册时间: 2013-03-03 10:45
系统: ubuntu

已知文件指针file *,如何把文件内容输出到屏幕上,求帮助!

#1

帖子 zero_hsy » 2013-04-06 20:55

大家好,我现在只知道一个文件的文件指针,比如file*,如何把该文件内容输出到屏幕上,应该调用哪个函数啊?求帮助!!!
buzzerrookie
帖子: 116
注册时间: 2012-08-21 18:17

Re: 已知文件指针file *,如何把文件内容输出到屏幕上,求帮助!

#2

帖子 buzzerrookie » 2013-04-06 23:07

用fopen打开文件,每读一行输出一行,看看fgetc,fgets,fputs,printf。
我是一个程序员。
头像
Fermat618
帖子: 728
注册时间: 2008-12-28 16:01

Re: 已知文件指针file *,如何把文件内容输出到屏幕上,求帮助!

#3

帖子 Fermat618 » 2013-04-06 23:40

请拿出一本C语言入门书,翻到文件那一章。

大概就是
[c]
while ((ch = fgetc(file)) != EOF) {
putchar(ch);
}
[/c]
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
zero_hsy
帖子: 37
注册时间: 2013-03-03 10:45
系统: ubuntu

Re: 已知文件指针file *,如何把文件内容输出到屏幕上,求帮助!

#4

帖子 zero_hsy » 2013-04-07 9:22

我知道以字符串的方式输出,但是我在文件里放的是int型的一堆数据,都是计算出来的数字,如何输出到屏幕上去啊!!!试过楼上说的getc,结果出来:核心栈已转移,没有输出任何东西!!
zero_hsy
帖子: 37
注册时间: 2013-03-03 10:45
系统: ubuntu

Re: 已知文件指针file *,如何把文件内容输出到屏幕上,求帮助!

#5

帖子 zero_hsy » 2013-04-07 9:23

Fermat618 写了:请拿出一本C语言入门书,翻到文件那一章。

大概就是
[c]
while ((ch = fgetc(file)) != EOF) {
putchar(ch);
}
[/c]
zero_hsy 写了:我知道以字符串的方式输出,但是我在文件里放的是int型的一堆数据,都是计算出来的数字,如何输出到屏幕上去啊!!!试过楼上说的getc,结果出来:核心栈已转移,没有输出任何东西!!
头像
huangbster
帖子: 187
注册时间: 2012-10-29 11:35
系统: UBUNTU

Re: 已知文件指针file *,如何把文件内容输出到屏幕上,求帮助!

#6

帖子 huangbster » 2013-04-08 12:39

使用fread.
头像
guyanqiu
帖子: 360
注册时间: 2009-05-05 23:42

Re: 已知文件指针file *,如何把文件内容输出到屏幕上,求帮助!

#7

帖子 guyanqiu » 2013-04-08 16:23

代码: 全选

/* fread example: read an entire file */
#include <stdio.h>
#include <stdlib.h>

int main () {
  FILE * pFile;
  long lSize;
  char * buffer;
  size_t result;

  pFile = fopen ( "myfile.bin" , "rb" );
  if (pFile==NULL) {fputs ("File error",stderr); exit (1);}

  // obtain file size:
  fseek (pFile , 0 , SEEK_END);
  lSize = ftell (pFile);
  rewind (pFile);

  // allocate memory to contain the whole file:
  buffer = (char*) malloc (sizeof(char)*lSize);
  if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}

  // copy the file into the buffer:
  result = fread (buffer,1,lSize,pFile);
  if (result != lSize) {fputs ("Reading error",stderr); exit (3);}

  /* the whole file is now loaded in the memory buffer. */

  // terminate
  fclose (pFile);
  free (buffer);
  return 0;
}
http://www.cplusplus.com/reference/cstdio/fread/
-----------------------
在迷茫中追逐,在追逐中迷茫……
-----------------------
回复