在文件中的指定位置写入数据

笔者的应用场景:将图像指定区域的像素值按其空间位置写到 txt 文件中。

int hang = 4; // 矩阵行数
int lie = 8; // 矩阵列数

// 先在txt文件中构造一个空矩阵,然后向该矩阵中指定行列写入个位数
int main10()
{
    FILE *filp = fopen("cc.txt", "w+");
    for (int i = 0; i < hang; i++)
    {
        fseek(filp, lie, SEEK_END);
        fprintf(filp, "\n"); // 换行符占两个字节宽度
    }

    for (int i = 1; i <= hang; i++)
    {
        fseek(filp, (i - 1)*(lie + 2), SEEK_SET);
        for (int j = 1; j <= lie; j++)
        {
            fprintf(filp, "%d", i);
        }
    }

    fclose(filp);
    while (1);
    return 0;
}

// 对上面程序的扩展,在矩阵中指定行列写入最高只有3位数的数据,两数之间以空格符间隔开。
int main11()
{
    FILE *filp = fopen("cc.txt", "w+");
    for (int i = 0; i < hang; i++)
    {
        fseek(filp, 4 * lie, SEEK_END); // 每个数值
        fprintf(filp, "\n"); // 换行符占两个字节宽度
    }

    for (int i = 1; i <= hang; i++)
    {
        fseek(filp, (i - 1)*(4 * lie + 2) + 1, SEEK_SET); // +1 表示每个数的空格放在数字前面,否则空格会自动被放在数字后面的。
        for (int j = 1; j <= lie; j++)
        {
            if ((i + j) % 2)
                fprintf(filp, "%3d", rand()%200);
            else // 模拟跳过某些特定位置
                fseek(filp, 3, SEEK_CUR);
            if (j < lie) fseek(filp, 1, SEEK_CUR); // 跳过空格
        }
    }

    fclose(filp);
    while (1);
    return 0;
}

// 对上面程序的扩展,矩阵的第一行用于表示列标号,矩阵的第一列用于表示行标号
int main()
{
    FILE *filp = fopen("cc.txt", "w+");
    fprintf(filp, "     "); // 5个空格
    for (int j = 0; j < lie; j++)
    {
        fprintf(filp, " %3d", j);
    }
    fprintf(filp, "\n");
    for (int i = 0; i < hang; i++)
    {
        fprintf(filp, "%3d: ", i); // 3个数据宽度+1个冒号+1个空格,一共5个字符宽度,即和第0行的前5个空格对应。
        fseek(filp, 4 * lie, SEEK_CUR);
        fprintf(filp, "\n"); // 换行符占两个字节宽度
    }

    for (int i = 1; i <= hang; i++) // 第0行是列标号
    {
        fseek(filp, i*(4 * lie + 5 + 2) + 5, SEEK_SET); // 括号中的+5表示每行的长度,+2表示换行符,外面的+5表示跳过当前行的前5个字符。
        for (int j = 1; j <= lie; j++)
        {
            if ((i + j) % 2) fprintf(filp, " %3d", rand() % 200);
            else
                fseek(filp, 4, SEEK_CUR);
        }
    }

    fclose(filp);
    while (1);
    return 0;
}
时间: 2024-12-25 04:28:30

在文件中的指定位置写入数据的相关文章

从密码文件中取得指定uid的数据

使用getpwuid()函数 #include <stdio.h> #include <pwd.h> #include <sys/types.h> main() { struct passwd *user; user = getpwuid(1); printf("name :%s\n",user->pw_name); printf("uid: %d\n",user->pw_uid); printf("home

Rhel7 grep在文件中查找指定的字符串,将其输出到指定文件

Rhel7 grep在文件中查找指定的字符串,将其输出到指定文件 [[email protected] findfiles]# cat /usr/share/dict/words |grep seismic anaseismic antiseismic aseismic -- [[email protected] findfiles]# cat /usr/share/dict/words |grep seismic >>/root/wordlist [[email protected] fin

(2) 如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?

在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表.那么在这个章节里面,我将会给大家演示一下,如何用Apache POI在已有的Excel文件中插入一行新的数据.具体代码,请看下面的例子. import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.

Js放到HTML文件中的哪个位置有什么区别

这个问题一直是初学者的困惑.先明白js能放在HTML的那个位置,分别是head和body中.大部分人都是放到head里面的.我学的时候也是稀里糊涂的跟着放到head的里面,也不知道为什么?今天看说说,放到这两个地方的区别: 先看一段html代码: 复制代码 代码如下: <html> <head> <title> New Document </title> <meta http-equiv="content-type" content

涛哥的Python脚本工具箱之批量替换目录所有指定扩展名的文件中的指定字符串

今天发布刚完成的涛哥的Python脚本工具箱之批量替换目录所有指定扩展名的文件中的指定字符串,命令行参数处理改用目前比较好用的argparse库,Python代码如下: #!/usr/bin/python2.7 # -*- encoding: UTF-8 -*- # Copyright 2014 [email protected] """replace old string with new string from all files in path 批量替换目录所有指定扩展

如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?

在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表.那么在这个章节里面,我将会给大家演示一下,如何用Apache POI在已有的Excel文件中插入一行新的数据.具体代码,请看下面的例子. [java] view plain copy import java.io.File; import java.io.FileInputStream; import java.io.FileNotFound

javascript 从一组数据中找到指定的单条数据的方法 by FungLeo

从一组数据中找到指定的单条数据的方法 在一般情况下,我们会要求后端在列表的时候输出一堆列表的JSON数据给我们,然后我们把这堆数据循环,就能在前端上显示列表了. 而我们在内容页的时候,则要求输出一个内容页的JSON数据给我们,我们就可以做内容页了. 但是,有时候,数据并不是特别复杂,我们可能需要从列表的数据中指定其中的单条数据.怎么做呢? 标准答案,find方法 var json = [{"id":1,"name":"张三"},{"id

查看Oracle表中的指定记录在数据文件中的位置

查看Oracle表中的指定记录位置select rowid,user_id from sshr.xx_user where user_id=3010586 select rowid,       dbms_rowid.rowid_object(rowid) object_id,              dbms_rowid.rowid_relative_fno(rowid) file_id,              dbms_rowid.rowid_block_number(rowid) b

使用jmeter往指定文件中插入一定数量的数据(转)

有一个需求,新建一批账号,把获取的账号相关信息存入文本文件,当文本文件保存的数据达到一定的数量,就自动停止新建账号. 分析下需求: 1.把账号信息保存到文件,需要使用bean shell脚本(bean shell脚本语法和java一样,功能也一样),并且需往脚本中传入要保存的信息 2.文件中保存的数据达到一定的数量,就自动停止新建账号.数量也是要用bean shell脚本读文件获取文件行数,并传出.自动停止新建脚本,这就需要加个jmeter的if控制器,在if控制器的条件中判断数量是否达到. 脚