如何在文件名中使用索引

2023-12-05

这可能是一个微不足道的问题。我不是一个专业的程序员,我而是一个正在使用 C 做一些数值实验的数学家。我想要我的输出 针对不同的参数值将实验写入不同的文件中。 MWE 应该做这样的事情。创建一个由 i 索引的文件指针。打开名为 file[i] 的文件。写 我进入该文件,然后关闭它。下面的代码显然无法编译。这样的构造可能吗?

#include<stdio.h>
int i;

int 
main()
{
        for (i = 0; i < 10; i++){
                FILE *f(i);
                f(i)=fopen("file"[i],"w");
                fprintf(f(i),"%d \n", i);
                fclose(f(i));  
        }
    return 0;
}

Edit:我得到了几个不错的答案,但有人可以帮助解决 sprintf 问题吗?即在 OpenBSD 上我不推荐使用 sprintf。所以我收到这条消息

$ gcc test.c
/tmp//ccN31aTv.o(.text+0x41): In function `main':
: warning: sprintf() is often misused, please use snprintf()

当我用 snprintf 替换 sprintf 时,我收到各种警告

$ gcc test.c
test.c: In function 'main':
test.c:9: warning: passing argument 2 of 'snprintf' makes integer from pointer without a cast
test.c:9: warning: passing argument 3 of 'snprintf' makes pointer from integer without a cast

对我来说,这看起来并不是一个高质量的代码。

最终解决方案:我只想记录最终的解决方案。 ProPolice 和 systrace 对 OpenBSD 上的这段代码感到满意。感谢所有提供帮助的人!

#include<stdio.h>
int i;

char buf[20];

int
main()
{
        for (i = 0; i < 10; i++){
                snprintf(buf, sizeof(buf), "filename%d", i);
                FILE *f = fopen( buf, "w");
                fprintf(f,"%d \n", i);
                fclose(f);
        }
return 0;
}

在 C 中,使用 snprintf:

char buf[PATH_MAX];
snprintf(buf, sizeof(buf), "file%d", i);

如果您使用 Linux,有一个有用的 GNU 扩展:

char *name;
asprintf(&name. "file%d", i);

您需要记住使用后释放(名称)。

请注意你的语法FILE *f(i);但无效。

如果您需要声明一个包含 10 个元素的 FILE * 数组,请执行以下操作:

FILE *array[10];

然后像这样使用它:

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

如何在文件名中使用索引 的相关文章

  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 重载<<的返回值

    include
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 我的 goto 重定向不起作用,但可以与 echo 一起使用

    echo off start1 set p input action for f tokens 1 2 delims a in input do goto a b gt nul 2 gt 1 goto start1 如果我输入 echo y
  • 如何使用python从csv文件中提取最小值和最大值

    我有一个 python 脚本 它从 csv 文件读取并将请求的列附加到 2 个空列表中 之后我需要提取提取的列的最小值和最大值 我写了这段代码 但它似乎不起作用 因为结果是空的 code import csv mydelimeter csv
  • adChar 和 adParamInput 无法识别

    我正在做 sql 到 oracle 的迁移 我必须更改很多旧的 vbscript 代码 这是我在 Oracle 中使用的新代码的示例 这就是引起问题的代码 cmd CreateParameter v CdEnt adChar adParam
  • 在 B 列中获取 A 列中“不在字典中”的单词

    我如何创建一个宏来检查 A 列的每个单元格 找到不在定义的字典中的单词 并将它们写入下一个单元格 用空格分隔 在下图中 您可以看到该宏完成后的工作表示例 完整的想法是从数据库中获取一个 varchar 列并使用 Excel 对其进行拼写检查
  • 模板和继承的“未在此范围内声明”错误[重复]

    这个问题在这里已经有答案了 这是重现我的问题的代码示例 template
  • 在 Windows Phone 8 中选择联系人

    我正在尝试将基本联系人列表添加到我的应用程序中 到目前为止 该应用程序查询了联系人存储并将所有内容显示在列表中 我需要的是一个数据结构 其中包含用户从列表中选择的每个联系人的姓名和号码 我很想看看你的想法 我确信这将是我错过的一些简单的事情
  • 如何在 Flutter 中从画布中裁剪圆形(或正方形或六边形)区域

    我想裁剪一个矩形图像文件并将其制成圆形或方形或六角形将其保存为本地图像文件 我有一个位图 我想从该位图中裁剪圆形或六边形区域 圆圈外的所有像素都应该是透明的 我怎样才能做到这一点 我在中找到了类似的问题android平台 但无法找到真正帮助
  • 从 MySQL 数据库在 Google Maps API v3 上绘制多个多边形

    因此 我尝试通过 MySQL 表中的多边形空间数据将多个多边形绘制到谷歌地图上 我有一个 php 脚本 它根据我的表数据输出以下 XML
  • 链接到另一个页面的按钮(特定部分)

    我正在尝试创建一个按钮 将我重定向到另一个页面上的特定部分 我的索引页上有此代码 a href BruinBier class btn Bekijken a 如果我按下上面的按钮 它应该将我重定向到 Bruin bier 部分下的网上商店页
  • 从 C 优雅地调用 C++

    我们用简单的方式开发一些项目C C99 但是 我们有一个库作为源代码 数学库 C 我们需要这个库 所以我想问一下 集成这个源代码的最优雅的方式是什么 尺寸之间的比例C and C is 20 1所以搬到C 不是这个选项 我们应该使用静态库吗
  • Visual Studio 2019 - 仅强制使用 C++11 功能

    我使用 Visual Studio 2019 进行 C 开发 由于代码部署到的遗留系统的限制 我只能使用 C 11 语言功能 特别是 GCC 4 8 5 VS2019中默认的是C 14 这显然是C 11的超集 我看不到仅指定 C 11 的方
  • 仅当字符串中连续时如何删除重复项? [复制]

    这个问题在这里已经有答案了 对于一个字符串 例如 12233322155552 通过删除重复项 我可以得到 1235 但我想保留的是 1232152 仅删除连续的重复项 import re Only repeated numbers ans
  • Redux-form 6.0.0 Field 组件外访问错误

    在 Redux form v5 中 我能够从装饰表单中的任何位置访问 内联 错误 异步验证 如下所示 const fields email inside the decorated form const email this props f
  • AIR 3.5 移动项目设备 ID

    我想知道是否有人知道针对移动设备 iOS 和 Android 将数据存储在全局数据库中的最佳方法 我正在构建一个根据查询写入 检索信息的应用程序 但我需要知道返回的任何记录是否是从该设备发送的 基本上 这个想法是 如果用户提交一些信息 存储
  • 如何向用户显示时间量?

    我想将时间量从毫秒转换为人类可读的字符串 例如 3 600 000应显示为1 00 00 1小时 Java 中是否有现有的库或类可以做到这一点 从 1 5 开始有 java util concurrent TimeUnit 类 像这样使用它
  • Symfony2 Twig 获取子实体的总计数

    存在以下实体 农场 谷仓和动物 一个农场可以有很多谷仓 一个谷仓可以有很多动物 在 TWIG 模板中显示农场时 还应显示动物的数量 做这个的最好方式是什么 我创建了一个 TWIG 扩展 它允许我轻松显示谷仓的数量 public functi
  • urllib、urllib2、urllib3 和 requests 模块之间有什么区别?

    在Python中 它们之间有什么区别urllib urllib2 urllib3 and requests模块 为什么是三个 他们似乎做着同样的事情 我知道已经说过了 但我强烈推荐requestsPython 包 如果您使用过 Python
  • 如何在 Android 中点击图标打开侧边栏?

    我已经实施了Hamburger酒吧与App toolbar他们都工作得很好 以下是快照toolbar and hamburgerbar Hamburger bar 我可以通过滑动打开此栏 但我也想通过单击可绘制图标 右上角图标 将其打开 我
  • 在 Qt 中从字符串中提取参数,包括带引号的区域

    我有一个 Qt5 C 程序 它接收一个包含程序名称和可能的参数的 QString 我需要将这个 QString 分成多个字符串 例如 字符串 tmp myprog param1 param2 2 param3 1 2 3 p 4 应该分为
  • 如何在文件名中使用索引

    这可能是一个微不足道的问题 我不是一个专业的程序员 我而是一个正在使用 C 做一些数值实验的数学家 我想要我的输出 针对不同的参数值将实验写入不同的文件中 MWE 应该做这样的事情 创建一个由 i 索引的文件指针 打开名为 file i 的