是否可以基于文件内容创建结构类型? 在C++中,可以根据文件内容创建结构类型吗?< /p> STRUCT_NAME int var1; int var2; string v3; STRUCT NAME *pointer; 结构名称 int-var1; int-var2; 字符串v3; 结构名*指针;

是否可以基于文件内容创建结构类型? 在C++中,可以根据文件内容创建结构类型吗?< /p> STRUCT_NAME int var1; int var2; string v3; STRUCT NAME *pointer; 结构名称 int-var1; int-var2; 字符串v3; 结构名*指针;,c++,C++,第一行是结构的名称,如果您正在从文件中读取并试图创建此结构,则其他行是变量 -->如果在同一程序中,即运行时,则否;因为您无法编译当前正在执行的源代码 -->对于一些尚未编译且正在使用文件操作的不同源代码,如果正在从文件读取并尝试创建此结构,则是 -->如果在同一程序中,即运行时,则否;因为您无法编译当前正在执行的源代码 -->对于一些尚未编译的不同源代码,并且您正在使用文件操作进行操作,那么是您的意思是在应用程序运行时进行动态操作吗?不,不能这样做,所有类型都必须在编译时已知。当然,您始终可以

第一行是结构的名称,如果您正在从文件中读取并试图创建此结构,则其他行是变量

-->如果在同一程序中,即运行时,则;因为您无法编译当前正在执行的源代码


-->对于一些尚未编译且正在使用文件操作的不同源代码,如果正在从文件读取并尝试创建此结构,则

-->如果在同一程序中,即运行时,则;因为您无法编译当前正在执行的源代码


-->对于一些尚未编译的不同源代码,并且您正在使用文件操作进行操作,那么

您的意思是在应用程序运行时进行动态操作吗?不,不能这样做,所有类型都必须在编译时已知。当然,您始终可以创建某种容器对象,这些对象可以在运行时进行动态配置,但这是一个更高级的系统


另一方面,如果你在构建应用程序时要做一次,你可以编写一个简单的工具来填充你的文本文件,并发出一个C++头文件,你可以在编译时使用它。

你的意思是在你的应用程序运行的时候?不,不能这样做,所有类型都必须在编译时已知。当然,您始终可以创建某种容器对象,这些对象可以在运行时进行动态配置,但这是一个更高级的系统


另一方面,如果你在构建应用程序时要做一次,你可以编写一个简单的工具来填充你的文本文件并发出一个C++头文件,你可以在编译时使用它。

不,你可以来的最接近的是<代码> STD::MAP< /Cord>(或者<代码> Boo::变体< /代码>,如果你可以限制类型集).

不。最接近你的是
std::map
(或者
boost::variant
,如果你可以限制类型集)。

无论@lindydancer@iammilind@james说什么都是正确的。。你不能一步到位。你可能会得到这样的工作(尽管这不是专业的做法):
1.首先读取要定义结构的文件并创建新文件(Cpp和h文件)。
2.现在编译新文件并向您的用户提供新的exe文件,您可以在后台执行此过程,以便为用户提供其所有动态。。(但至少必须有人来做这项工作……

不管@lindydancer@iammilind@james说什么都是正确的.)。。你不能一步到位。你可能会得到这样的工作(尽管这不是专业的做法):
1.首先读取要定义结构的文件并创建新文件(Cpp和h文件)。
2.现在编译新文件并向您的用户提供新的exe文件,您可以在后台执行此过程,以便为用户提供其所有动态。。(但至少需要有人来做这项工作…

我想你需要更清楚一点-你是否在问程序运行时是否可以读取一个文本文件并根据该文件的内容创建一个结构?问题是,你想在运行时这样做吗,还是在编译时?你是说在运行时你想读入一个描述结构的文本文件,然后在内存中以某种方式创建该结构?@GrahamS,@Space\u C0wb0y:我想在运行时这样做。如果你只在运行时定义它,你会如何在代码中引用这个“结构”?听起来你想要的实际上不是一个结构,而是一个容器,其中包含
string int
string-string
键值对?我想你需要更清楚一点-你是不是在问程序运行时是否可以读取一个文本文件,并根据该文件的内容创建一个结构?问题是,您想在运行时还是在编译时执行此操作?您的意思是,在运行时您想读入描述结构的文本文件,然后在内存中以某种方式创建该结构吗?@GrahamS,@Space\u C0wb0y:我想在运行时执行此操作。如果您仅在运行时定义它,您会如何在代码中引用此“结构”?听起来你想要的实际上不是一个结构,而是一个容器,其中包含
stringint
stringstring
键值对?我不明白这个答案。想详细说明吗?我不明白这个答案。需要详细说明吗?类型将仅为“int”和“string”,结构将在运行时创建。感谢您的回答,类型将仅为“int”和“string”,结构将在运行时创建。感谢您的回答我希望在运行时这样做,bcuz我希望允许我的用户定义他们自己的
结构
。您可以选择使用低技术解决方案(分配与用户结构相对应的字节数),也可以选择使用高技术解决方案(使用数据库存储数据)。总之,这是一个不平凡的任务,要完全描述它,你需要真正理解1)你正在尝试的问题,2)C++编程语言,3)解析技术。更不用说,您必须定义自己的结构描述语言。祝你好运,你会需要它的…我想在运行时这样做,bcuz我想让我的用户定义他们自己的
struct
。你可以选择使用低技术解决方案,分配与用户结构相对应的字节数,也可以选择使用高技术解决方案,使用数据库存储数据。总之,这是一个不平凡的任务,要完全描述它,你需要真正理解1)你正在尝试的问题,2)C++编程语言,3)解析技术。更不用说你必须