求c语言读取写入文本文件的函数实现
小弟不懂c/c++开发,现在需要实现这么个功能提供给外部程序调用,请大侠帮忙实现,不胜感激myfile.hextern"C"_declspec(dllexport)int...
小弟不懂c/c++开发,现在需要实现这么个功能提供给外部程序调用,请大侠帮忙实现,不胜感激
myfile.h
extern "C" _declspec(dllexport) int FileCreate(char *filePath,char *fileContext);
extern "C" _declspec(dllexport) char* FileRead(char *filePath);
myfile.cpp
//创建文件 成功返回0 失败返回1
//filePath文件路径 比如c:/myfile.txt
//fileContext文件内容 比如 测试写入abc123,也可以没有中文字符
int FileCreate(char *filePath,char *fileContext)
{
}
//读取文件 成功返回文件内容 失败返回空字符串
//filePath文件路径 比如c:/myfile.txt
char* FileRead(char *filePath)
{
}
上面的代码不一定正确,但意思应该表达清楚了,我这边的环境是vs2010建的win32 dll,麻烦贴完整的代码包括要引用哪些头文件,再次感谢
方便的话也可以上 csdn 回答
//bbs.csdn.net/topics/390696105?page=1#post-396617198 展开
myfile.h
extern "C" _declspec(dllexport) int FileCreate(char *filePath,char *fileContext);
extern "C" _declspec(dllexport) char* FileRead(char *filePath);
myfile.cpp
//创建文件 成功返回0 失败返回1
//filePath文件路径 比如c:/myfile.txt
//fileContext文件内容 比如 测试写入abc123,也可以没有中文字符
int FileCreate(char *filePath,char *fileContext)
{
}
//读取文件 成功返回文件内容 失败返回空字符串
//filePath文件路径 比如c:/myfile.txt
char* FileRead(char *filePath)
{
}
上面的代码不一定正确,但意思应该表达清楚了,我这边的环境是vs2010建的win32 dll,麻烦贴完整的代码包括要引用哪些头文件,再次感谢
方便的话也可以上 csdn 回答
//bbs.csdn.net/topics/390696105?page=1#post-396617198 展开
2个回答
展开全部
C语言标准库提供了一系列文件I/O函数用于文件操作,比如fopen()用于打开文件、fread()、fwrite()用于读写文件、fseek()用于设置操作位置等等,一般C语言教程上都有文件I/O一章,细致内容,可以找本教科书学习一下。 下面的示例,是向名为1.txt的文件附加hello world字符串。
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fp = fopen("1.txt", "a+");
if (fp==0)
{
printf("can't open file\n");
return 0;
}
fseek(fp, 0, SEEK_END);
char sz_add[] = "hello world\n";
fwrite(sz_add, strlen(sz_add), 1, fp);
fclose(fp);
return 0;
}
或
#include<stdio.h>
struct stu
{
char name[10];
int num;
int age;
char addr[15];
}boya[2],boyb[2],*pp,*qq;
main(){
FILE *fp;
char ch;
int i;
pp=boya;
qq=boyb;
if((fp=fopen("stu_list","wb+"))==NULL){
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("\ninput data\n");
for(i=0;i<2;i++,pp++)
scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr);
pp=boya;
for(i=0;i<2;i++,pp++)
fprintf(fp,"%s %d %d %s\n",pp->name,pp->num,pp->age,pp->addr);
rewind(fp);
for(i=0;i<2;i++,qq++)
fscanf(fp,"%s %d %d %s\n",qq->name,&qq->num,&qq->age,qq->addr);
printf("\n\nname\tnumber age addr\n");
qq=boyb;
for(i=0;i<2;i++,qq++)
printf("%s\t%5d %7d %s\n",qq->name,qq->num, qq->age,qq->addr);
fclose(fp);
}
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fp = fopen("1.txt", "a+");
if (fp==0)
{
printf("can't open file\n");
return 0;
}
fseek(fp, 0, SEEK_END);
char sz_add[] = "hello world\n";
fwrite(sz_add, strlen(sz_add), 1, fp);
fclose(fp);
return 0;
}
或
#include<stdio.h>
struct stu
{
char name[10];
int num;
int age;
char addr[15];
}boya[2],boyb[2],*pp,*qq;
main(){
FILE *fp;
char ch;
int i;
pp=boya;
qq=boyb;
if((fp=fopen("stu_list","wb+"))==NULL){
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("\ninput data\n");
for(i=0;i<2;i++,pp++)
scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr);
pp=boya;
for(i=0;i<2;i++,pp++)
fprintf(fp,"%s %d %d %s\n",pp->name,pp->num,pp->age,pp->addr);
rewind(fp);
for(i=0;i<2;i++,qq++)
fscanf(fp,"%s %d %d %s\n",qq->name,&qq->num,&qq->age,qq->addr);
printf("\n\nname\tnumber age addr\n");
qq=boyb;
for(i=0;i<2;i++,qq++)
printf("%s\t%5d %7d %s\n",qq->name,qq->num, qq->age,qq->addr);
fclose(fp);
}
展开全部
#include <stdio.h>
#include <string.h> //strlen()
#include <malloc.h> //malloc()
int FileCreate(char *filePath,char *fileContext)
{
FILE* fp;
fp=fopen(filePath,"w+");
if(fp)
{
fwrite(fileContext,strlen(fileContext),1,fp);
fclose(fp);
return 0;
}
return 1;
}
char* FileRead(char *filePath)
{
FILE* fp;
long int fsize;
char* fileContext;
fp=fopen(filePath,"r");
if(fp)
{
fseek(fp,0,SEEK_END);
fsize=ftell(fp);
rewind(fp);
fileContext=(char*)malloc(fsize+1); //注意释放内存
fread(fileContext,fsize,1,fp);
*(fileContext+fsize)='\0';
fclose(fp);
return fileContext;
}
return NULL;
}
int main() //测试
{
char* fileContext;
char* filePath="d:\\111.txt";
FileCreate(filePath,"abc123");
fileContext=FileRead(filePath);
printf("%s",fileContext);
free(fileContext); //释放
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询