从源文件中读入2048个字节到目标文件

该程序演示了fopen,fread,fwrite的基础用法。

/*
功能说明:
    从源文件中读入2048个字节到目标文件
代码说明:

实现方式:
    该程序演示了fopen,fread,fwrite的基础用法。
限制条件或者存在的问题:
    无
*/

#include <stdio.h>
#include <stdlib.h>

#define BUFFER_SIZE 2048

int main(int argc, char ** argv)
{
    if (argc != 2)
    {
        printf("parameter error! usage:\n\t[%s file_path_name]\n", argv[0]);

        return -1;
    }

    FILE *fp_read = fopen(argv[1], "rb");
    if (!fp_read)
    {
        printf("open read file [%s] error!\n", argv[1]);

        return -2;
    }

    FILE *fp_write = fopen("file_name.dat", "wb");
    if (!fp_write)
    {
        printf("open write file [file_name.dat] error!\n");

        fclose(fp_read);

        return -3;
    }

    char buffer[BUFFER_SIZE + 1] = { 0 };
    if (fread(buffer, BUFFER_SIZE, 1, fp_read) != 1) // fread就是从文件指示符中读取指定大小的内容到内存中。它与fgets是不一样的。
    {
        printf("read file [%s] error!\n", argv[1]);

        fclose(fp_read);
        fclose(fp_write);

        return -4;
    }

    if (fwrite(buffer, BUFFER_SIZE, 1, fp_write) != 1)
    {
        printf("write file [file_name.dat] error!\n");

        fclose(fp_read);
        fclose(fp_write);

        return -5;
    }

    fclose(fp_read);
    fclose(fp_write);

    return 0;
}

这个代码可以复用到我现在的工作中。

时间: 2024-10-18 14:25:41

从源文件中读入2048个字节到目标文件的相关文章

RandomAccessFileDemo3~4 向文件中读写出一组字节的方法

RandomAccessFileDemo3  向文件中写出一组字节的方法 /** *    文件操作 --- RandomAccessFile * *    RandomAccessFile提供了一个可以向文件中写出一组字节的方法: *    void write(byte[] bytesArr) 将给定的字节数组中所有字节一次性写出 与该方法相似的还有一个常用方法: void write(byte[] bytesArr,int offset,int len) 该方法会根据当前指针所在位置处连续

c语言中读入带空格的字符串

http://blog.csdn.net/pipisorry/article/details/37073023 问题: scanf("%s", a); 运行输入hello world 回车 则输入到a的只是空格之前的部分,怎样把空格之后的部分也输出? 1. scanf( "%[^\n]", str ); #include <stdio.h> int main(){ char str[50]; scanf( "%[^\n]", str

Java如何取源文件中文件名和行号

package com.github.jdk; /**  * Java如何取源文件中文件名和行号  *   * {@code StackTraceElement}的定义详见文档  *   * @author doctor  *  * @time 2015年3月13日 上午9:16:16  */ public class StackTraceElementPractice { public static void main(String[] args) { StackTraceElement[] 

Android中资源文件中的字符串数组string-array简单用法

在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子如下: 把相应的数据放到values文件夹的strings.xml文件里,或是其他自定义的xml中都可以,以下操作方法相同. <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sports"> <item>足球<

C/C++中避免系统的字节对齐

在定义了一个新的Struct后. 系统会按照一定的规则将新生命的类型变量进行字节对齐,如下结构体: typedef struct Test{ int a; char b[6]; }Test; 该结构体类型可能会被对齐为12个字节. 那么,在内存流和文件流操作中可能会出现这样的用法: fwrite(strPtr,1,sizeof(Test)*len,fp); 事实上,被写入了len*12个字节,因为sizeof(Test)实际上不等于10,而是12. 那么,如下简单地操作可以避免在流操作中出现的一

一个java源文件中为什么只能有一个public类。

我们都遇到过一个源文件中有多个java类,但当第一个类使用public修饰时,如果下面还有类使用public修饰,会报错.也就是是说一个java源文件最多只能有一个public类. 当有一个public类时,源文件名必须与之一致,否则无法编译,如果源文件中没有一个public类,则文件名与类中没有一致性要求. java虚拟机实例通过调用某个类的main()来运行一个Java程序,而这个main()必须是public static void 并接收一个字符串数组作为参数,任何拥有这样一个main(

去除源文件中的重复行的程序流程及其C代码实现

(本文正在参加2015博客之星评选,诚邀你来投票,谢谢:http://vote.blog.csdn.net/blogstar2015/candidate?username=zhouzxi) 一.需求描述 要求对一个包含若干行记录且某几条记录相同的文件(源文件)实现去重操作,并将去重之后的记录写入到另外一个文件(目的文件)中.也即最后生成的文件中没有内容相同的两行记录.如果源文件中两条记录之间有空行,则在目的文件中一并将其去掉. 两条记录相同的标准是: 1) 字符个数及内容完全相同. 2) 去除空

关于Java源文件中public类的问题

结论: 一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必须与之一致,否则无法编译: 如果源文件中没有一个public类,则文件名与类中没有一致性要求: 至于main()不是必须要放在public类中才能运行程序. 实验如下:Test3.java源文件: class Test1{     int i = 1; } class Test2{     int i = 2;     public static void main(String[] args)   

浅谈为什么一个java源文件中只能有一个public类?

声明,本篇文章为转载 转载 http://blog.csdn.net/bareheadzzq/article/details/6562211 最近在一个java文件中实现了几个类,其中一个声明为public类型,但编译器报错:后来将public去掉,也即文件中没有一个public类,程序正常运行,有些困惑,最后通过本文章找到答案,为以后方便查找,转载,感谢作者. 结论: 一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必 须与之一致,否则无法编译,如果源文件中