c++ 从txt文件中阅读变量名

h7wcgrx3  于 2023-02-26  发布在  其他
关注(0)|答案(3)|浏览(136)

我只是想知道当你的文本文件看起来像

"Variable name a"  1.0
"Variable name b"  2.0
"Variable name c"  3.0

等等。
我只是试图分配值,而不会因为文本文档中的变量名而出错。
我试着联系我的教授,但他生病了,一直没有检查他的电子邮件。

waxmsbnn

waxmsbnn1#

哎呀......这里有一个很大的误解。C++不是一种动态语言,在这种语言中,可以声明一个新变量沿着名称。生成一个可执行文件需要不同的步骤(*):

  • 你首先编译源文件。2变量名只在那个阶段才有意义。3在下面的任何一个阶段中,只有变量名可以被任何键代替,通常是相对或绝对地址
  • 然后链接编译的文件和所需的库以构建真正的可执行文件
  • 最后执行程序

长话短说,你不想创建新的变量。但是你可以把新的值存储在像mapunordered_map这样的容器中,并用字符串索引它们...
(*)这只是一个简化的视图。在真实的世界的环境中,编译被分为预编译和实际编译,链接阶段可以分为静态链接阶段(在构建时)和动态链接阶段(就在运行时之前)

cdmah0mi

cdmah0mi2#

由于C++是一种编译语言,您不能在运行时创建变量。作为一种解决方法,您可以创建一个数组/Map,其索引为变量名。然后您可以调用
array[variablename]
并获取值

b4lqfgs4

b4lqfgs43#

您需要一个关联容器来关联名称和值,我推荐使用std::map

std::map<string, int> database;
std::string row_text;
while (std::getline(my_file, row_text)
{
  char first_double_quotes;
  std::istringstream row_stream(row_text);
  row_stream >> first_double_quotes;
  std::string variable_name;
  std::getline(row_stream, variable_name, '"');
  int value;
  std::row_stream >> value;
  database[variable_name] = value;
}

要检索变量的值:

int variable_value = database[variable_name];

在C++中,你不能在运行时创建命名变量,但是你可以把变量名放入一个关联容器中,并把槽当作一个变量。

相关问题