将二维数组写入C中的文件

2024-01-09

我曾经使用下面的代码将一维数组写入文件:

FILE *fp;
float floatValue[5] = { 1.1F, 2.2F, 3.3F, 4.4F, 5.5F };
int i;

if((fp=fopen("test", "wb"))==NULL) {
    printf("Cannot open file.\n");
}

if(fwrite(floatValue, sizeof(float), 5, fp) != 5)
    printf("File write error.");
fclose(fp);

/* read the values */
if((fp=fopen("test", "rb"))==NULL) {
    printf("Cannot open file.\n");
}

if(fread(floatValue, sizeof(float), 5, fp) != 5) {
    if(feof(fp))
        printf("Premature end of file.");
    else
        printf("File read error.");
}
fclose(fp);

for(i=0; i<5; i++)
    printf("%f ", floatValue[i]);

我的问题是我是否想写入和读取二维数组?


您可以使用相同的方法...只需进行以下更改

float floatValue[3][5] = {{ 1.1F, 2.2F, 3.3F, 4.4F, 5.5F },
                          { 6.6F, 7.7F, 8.8F, 9.9F, 8.8F },
                          { 7.7F, 6.6F, 5.5F, 4.4F, 3.3F }};
int i,j;

...

if(fwrite(floatValue, sizeof(float), 3*5, fp) != 3*5)

...

if(fread(floatValue, sizeof(float), 3*5, fp) != 3*5) {

...

for(j=0; j<3; j++) {
    for(i=0; i<5; i++)
        printf("%f ", floatValue[j][i]);
    printf("\n");
}

当然请注意,这不是保存/加载数据的最佳方式,特别是如果您希望在不同编译器/系统之间甚至只是与未来具有一定的兼容性。 保存和恢复的主题通常被命名为serialization只需很少的开销,您就可以获得更大的灵活性,特别是当数据模型变得更加复杂时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将二维数组写入C中的文件 的相关文章

  • 将复选框添加到 UniformGrid

    我正在尝试将复选框动态添加到 wpf 中的统一网格中 但看起来网格没有为它们分配足够的空间 所以它们都有点互相重叠 这就是我将它们添加到后面的代码中的方法 foreach string folder in subfolders PathCh
  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 无法使用已与其底层 RCW 分离的 COM 对象。在 oledb 中

    我收到此错误 但我不知道我做错了什么 下面的代码在backrgroundworker中 将异常详细信息复制到剪贴板 System Runtime InteropServices InvalidComObjectException 未处理 通
  • C# 和 Javascript SHA256 哈希的代码示例

    我有一个在服务器端运行的 C 算法 它对 Base64 编码的字符串进行哈希处理 byte salt Convert FromBase64String serverSalt Step 1 SHA256Managed sha256 new S
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 当我使用“control-c”关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收“”

    我是套接字编程的新手 我知道使用 control c 关闭套接字是一个坏习惯 但是为什么在我使用 control c 关闭发送进程后 接收方上的套接字不断接收 在 control c 退出进程后 发送方的套接字不应该关闭吗 谢谢 我知道使用
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 如何忽略“有符号和无符号整数表达式之间的比较”?

    谁能告诉我必须使用哪个标志才能使 gcc 忽略 有符号和无符号整数表达式之间的比较 警告消息 gcc Wno sign compare 但你确实应该修复它警告你的比较
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • 不能借用 `self.x` 作为不可变的,因为 `*self` 也借用为可变的

    首先让代码说话 derive Debug struct Bar derive Debug struct Qux baz bool derive Debug struct Foo bars Vec
  • Javascript json数据分组[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 很抱歉 如
  • C# 调试 - 无法开始调试,因为缺少调试目标

    我对 C 相当陌生 I am using Visual Studio 12 the source I am using was last edited in VS 12 But my problem is that it s throwin
  • 如何使用 Applescript 构建和运行 Xcode?

    我正在尝试在另一个编辑器 即 Vim 中模拟 Xcode 的 R 按键 我以为我可以使用一些 shell 脚本和 applescript 来完成此操作 但它似乎无法正常工作 open a Xcode MyProj xcodeproj osa
  • 如何在android中判断.3gp文件是音频还是视频

    我有一个应用程序 允许用户导入媒体 视频 照片 音频 然后由应用程序管理 作为证据 我发现一些录音应用程序会将音频保存为 3gp 格式 特别是 Whats App Messenger 如果我使用以下代码获取 mime 类型 MimeType
  • 使用 iframe 将 CSS 媒体查询应用于块元素

    我当时正在做一些网页设计 心想 嘿 如果我们可以将 CSS 媒体查询应用于块元素 即div section ETC 说真的 如果我们能够拥有此功能 我们可以制作一些非常令人惊叹的流体布局 在这篇文章中 我将使用一个简单的社交插件 我可以将其
  • 使用查找表中的值替换文本,无需 for 循环

    我正在编写一个拼写纠正功能 我刮了拼写变体 https en wikipedia org wiki Wikipedia List of spelling variants来自维基百科的页面并将其转换为表格 我现在想使用它作为查找表 拼写 并
  • pandas python 中没有名为 read_csv 的属性

    我是机器学习新手 正在使用 Python 中的 pandas 创建数据集 我查找了一个教程 只是尝试了创建数据框的基本代码 但我不断收到以下回溯 AttributeError 模块 对象没有属性 read csv 我已将 Excel 13
  • 如何从 C++ 中的函数返回结构体?

    我在几个不同的论坛上尝试过 似乎无法得到直接的答案 如何让这个函数返回结构 如果我尝试 返回 newStudent 我收到错误 不存在从 StudentType 到 StudentType 的合适的用户定义转换 Input function
  • 如何编写一个 for 循环来创建模型并具有引用同一模型的函数

    我正在尝试使用不平衡的双向方差分析进行事后分析anova test函数在rstatix包裹 我需要迭代地运行这个事后测试 因为我有大约 26 个响应 y 变量 我的第一步是创建我所有的模型y与相关的变量group and treatment
  • 使用 React Native Realm 查询多个列表对象

    第一天使用 React Native 和 Realm 我很难弄清楚如何通过两个 Realm 列表对象执行查询 Tasks have Reservations 其中有Renters 其中有first name and last name字段
  • yii -> dropDownList -> CHtml::listData -> 设置选定值

    如何在以下语句中设置所选值 echo form gt dropDownList model land id CHtml listData ListeLand model gt findAll iso landname array class
  • HTTP 状态 403 - 在请求参数中发现无效的 CSRF 令牌“null”

    我必须向我的宁静服务发出 HTTP Post Android 应用程序 来注册新用户 问题是 当我尝试向注册端点 没有安全性 发出请求时 Spring 一直阻止我 我的项目依赖项
  • SwiftUI 何时更新其视图?

    如果你看一下flagTapped函数 你会看到它修改了很多State变量 通过使用断点 我意识到body暂时没有更新round被修改 但仅在函数运行之后 有人可以向我解释一下 SwiftUI 何时更新其视图吗 import SwiftUI
  • java中将字符串转换为日期

    我正在尝试将字符串解析为 Android 应用程序中的日期字段 但我似乎无法正确解析 这是我试图转换为日期 03 26 2012 11 49 00 AM 的字符串 我正在使用的功能是 private Date ConvertToDate S
  • 从命令行获取一组数字的平均值的最快方法是什么?

    使用您希望在 nix 系统上找到的任何工具 事实上 如果您愿意 msdos 也很好 计算一组数字的平均值的最简单 最快的方法是什么 假设您有一个流或文件中的每行 awk n 1 END print n NR 这将总和累加到n 然后除以项目数
  • 元素左侧和右侧的文本

    使用 CSS 将文本放在元素的右侧和左侧并垂直位于同一位置的最佳方式是什么 Thus ending up with the following layout 容器有固定的宽度 所以我不想使用定位 因为我知道我不必这样做 1 在包含每个文本字
  • Android - 确定短信发送失败的原因

    我有一个提醒应用程序 它会发送短信通知用户提醒时间已过 这效果很好 然而 我一直在测试当手机处于睡眠状态并错过提醒时会发生什么 我在用着AlarmManager设置闹钟以对应提醒时间 我的日志显示 当手机重新启动并尝试发送短信时 警报响起
  • 如何从 jQuery 函数返回值?

    我正在尝试从 jQuery 函数返回值 这是我的功能 output keypress function event var keycode event keyCode event keyCode event which if keycode
  • 将二维数组写入C中的文件

    我曾经使用下面的代码将一维数组写入文件 FILE fp float floatValue 5 1 1F 2 2F 3 3F 4 4F 5 5F int i if fp fopen test wb NULL printf Cannot ope