c - 具有预定义一维数组的二维数组的动态输入

标签 c arrays file-io

目前,我的工作代码如下所示:

char input[4][10] = {ARR1, ARR2, ARR3, ARR4};

显然,我正在使用这些一维数组创建一个二维数组,这些一维数组是在其他地方定义的常量。但是,我需要更改此代码,以便它从文件中读取所需的一维数组的名称并相应地初始化二维数组。

例如,如果文件包含:

ARR9 ARR3 ARR5 ARR7

然后初始化将像这样运行(假设所有这些数组都已定义):

char input[4][10] = {ARR9, ARR3, ARR5, ARR7};

我从文件中读取数据没有问题,但在创建二维数组以及使用从文件中读取的值作为数组名称时遇到困难。

最佳答案

C 没有 introspectionreflection ,所以这实际上是不可能的。

但是,您可以拥有一个转换表,将字符串 "ARR1""ARR2" 等转换为实际的字符串数组,然后您可以将实际数组中的内容复制到 input 条目中。或者,您可以拥有一个指针数组,然后将指针设置为指向正确的数组,而不是像现在这样拥有一个数组的数组。

关于c - 具有预定义一维数组的二维数组的动态输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18471262/

相关文章:

java - 将 getResource() 用于 txt 文件 (Java) 的问题

c - 从不兼容指针类型进行赋值以及取消引用指针到不完整类型

php - 按日期时间对 PHP 中数组中的数组进行排序

javascript - 将一串坐标对转换为对象数组

java - 如何将用户输入保存在数组中?

Java:如何编写二进制文件?

java - 父子权限被拒绝

C:通过指针打印数组给出错误的数字

C printf 数组并获取 open_stackdumpfile 错误

c - 在 C 中实现管道时出现错误的文件描述符错误