下面是芦运将文件全部读入char * buffer
/* 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
}
构建函数建一个string 对象,把 char * buffer 内容存入 程序部分,请自己补充:
#include <windows.h>
#include<iostream>
#include <string>
using namespace std
#include <stdio.h>
// 插入上面程序 .....
// 补充
string sss
sss.assign(buffer,result)
cout <<sss <<endl
学了结构体了没?学过结构体就用以下方法读写亮宽轮文件
/* 写文件 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 用户信息结构体
struct user_info{
char name[30] // 姓名
char sex[10] // 性别
int id // 帐号
}
int main(){
FILE *fp = fopen("user_info.txt","w+b") // 创建一个文件
if(fp == NULL){ // 如果创建文件失败
perror("fopen()")
return -1
}
struct user_info u
strcpy(u.name, "xiaoming")
strcpy(u.sex, "boy")
u.id = 12345678
fwrite(&u, sizeof(u), 1, fp)// 把信息写入到文件中
close(fp)
return 0
}
/* 读文件 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct user_info{
char name[30] // 姓名
char sex[10] // 性别
int id // 帐号
}
int main(){
FILE *fp = fopen("user_info.txt","r+b"敬信) // 打开一个文件
if(fp == NULL){ // 如果打开文件失败
perror("fopen()")
return -1
}
struct user_info u
fread(&u, sizeof(u), 1, fp)// 把读取文件
// 打印读巧唯取的信息
printf("name:%s sex:%s id:%d\n", u.name, u.sex, u.id)
close(fp)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)