fgets()
: 从文件流中读取一行,并把它存储在 s 所指向的字符串内,
#include <stdio.h>
char *fgets(char *s, int size, FILE *stream);
参数含义:
s:数组指针,读到的字符串储存在此数组内;
size:读取的字符数量,通常填写数组长度;
stream:打开的文件流。
返回值:读取成功返回与s相同的参数,错误返回一个空指针。
fread()
:从文件流stream中读nmemb个元素到ptr指向的内存中,每个元素有size个字节。
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
参数含义:
ptr:指向内存块的指针;
size:每个元素的字节数;
nmemb:一次读取的元素个数;
stream:打开的 FILE对象的指针。
返回值:如果返回结果与nmemb不同,则发生了一个错误或达到了文件末尾。
实验代码在fread.c:路径为:11_Linux系统开发进阶\Linux系统编程_章节使用资料。
#include <stdio.h>
int main(int argc, const char *argv[])
{
if(argc != 2){
printf("请输入文件名!\n");
return -1;
}
FILE * file;
ssize_t readRet;
char buff[20];
file = fopen(argv[1],"r");
while(1){
readRet = fread(buff,1,4,file);//从文件流读数据
printf("%s",buff);
if(readRet != 4){
return 1;
}
}
fclose(file);
return 0;
}
编译后执行,输入“./a.out topeet.txt”执行,文件名作为参数传到程序: