c语言中文件读写二

来源:互联网 发布:淘宝发不了图片给卖家 编辑:程序博客网 时间:2024/04/29 03:19

看程序:

#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;}




原创粉丝点击