c语言中文件读写二

看程序:

#include <stdio.h>
#include<string.h>

int main(int argc , char *argv[])
{
    FILE *first_stream;
    char *msg;
    int char_num;
    char *str = "this is a test";
    first_stream = fopen("D:\liu.fil" , "w+");
    char_num = fwrite(str , strlen(str) , 1, first_stream);
    printf("%d \n" , char_num);
    fseek(first_stream , 0 , SEEK_SET);
    msg = malloc(sizeof(strlen(str)));
    fgets(msg , strlen(str)+1 , first_stream);
    printf("%s \n" , msg);
    fclose(first_stream);
	return 0;
}

    这里fopen函数要注意后面的w+参数是表示可以读写,另外,fwrite(str , strlen(str) , 1 ,first_stream) , 这里给是指给str分配strlen(str)*1个空间,好让str写入first_stream里面去。这个函数的返回值是1,也就是fwrite函数的第三个参数的实参。

    fgets(msg , strlen(str)+1 ,first_stream)是从first_stream里面取得strlen(str)+1个空间,并把它们复制到msg指针里面。

不知道以上说的是否正确,如果不正确可以一起探讨。


#include <stdio.h>
#include<string.h>

int main(int argc , char *argv[])
{
    FILE *first_stream;
    char *msg;
    int char_num , size_char;
    char *str = "this is a test";
    size_char = sizeof(char);
    printf("%d \n" , size_char);
    first_stream = fopen("D:\liu.fil" , "w+");
    char_num = fwrite(str ,size_char, strlen(str) ,  first_stream);
    printf("%d \n" , char_num);
    fseek(first_stream , 0 , SEEK_SET);
    msg = malloc(sizeof(strlen(str)));
    fgets(msg , strlen(str)+1 , first_stream);
    printf("%s \n" , msg);
    fclose(first_stream);
	return 0;
}

fwrite第二个参数指要写入的每个元素的字节大小,第三个是指写入元素的个数。另外,fseek,第二个参数是相对文件开始的偏移,文件的打开有三种方式,一种是SEEK_SET,表示从前面开始打开,另外一种是SEEK_CUR,表示从当前位置开始打开,SEEK_END是从最末尾打开。


#include <stdio.h>
#include<string.h>

int main(int argc , char *argv[])
{
    FILE *file;
    char  *text_path;
    text_path = malloc(sizeof(40));
    strcpy(text_path , "D:\hao.txt");
    file = fopen(text_path , "wb");
    free(text_path);
    fputs("this is big message" , file);
    fseek(file , 9 , SEEK_SET);
    fclose(file);
	return 0;
}

以下是另外一个写法:

#include <stdio.h>
#include<string.h>

int main(int argc , char *argv[])
{
    FILE *file;
    char  *text_path , *to_write_in;
    text_path = malloc(sizeof(40));
    to_write_in = "this is big message";
    strcpy(text_path , "D:\hao.txt");
    file = fopen(text_path , "wb");
    free(text_path);
    fwrite(to_write_in , sizeof(char) , strlen(to_write_in) , file);
    fseek(file , 9 , SEEK_SET);
    fclose(file);
	return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值