gpt4 book ai didi

c++ - CSV 文件中的 Unordered_map 值

转载 作者:行者123 更新时间:2023-11-30 02:01:04 25 4
gpt4 key购买 nike

我找到了一个我正在尝试实现的类似示例:

std::unordered_map<std::string,std::string> mymap = {
{"us","United States"},
{"uk","United Kingdom"},
{"fr","France"},
{"de","Germany"}
};

但是,我拥有的值在 CSV 文件中。

我是否需要将这些值插入到不同的容器中,然后将它们添加到 unordered_map 中,或者是否可以直接从文件中添加它们?

我正在努力弄清楚,所以目前我只是将文件内容写到屏幕上:

int menuLoop = 1;
int userChoice;
string getInput;

while(menuLoop == 1)
{
cout << "Menu\n\n"
<< "1. 20\n"
<< "2. 100\n"
<< "3. 500\n"
<< "4. 1000\n"
<< "5. 10,000\n"
<< "6. 50,000\n\n";
cin >> userChoice;

if(userChoice == 1)
{
cout << "\n20\n\n";
string getContent;
ifstream openFile("20.txt");
if(openFile.is_open())
{
while(!openFile.eof())
{
getline(openFile, getContent);
cout << getContent << endl;
}
}
system("PAUSE");
}
}

文件内容:

Bpgvjdfj,Bvfbyfzc
Zjmvxouu,Fsmotsaa
Xocbwmnd,Fcdlnmhb
Fsmotsaa,Zexyegma
Bvfbyfzc,Qkignteu
Uysmwjdb,Wzujllbk
Fwhbryyz,Byoifnrp
Klqljfrk,Bpgvjdfj
Qkignteu,Wgqtalnh
Wgqtalnh,Coyuhnbx
Sgtgyldw,Fwhbryyz
Coyuhnbx,Zjmvxouu
Zvjxfwkx,Sgtgyldw
Czeagvnj,Uysmwjdb
Oljgjisa,Dffkuztu
Zexyegma,Zvjxfwkx
Fcdlnmhb,Klqljfrk
Wzujllbk,Oljgjisa
Byoifnrp,Czeagvnj

最佳答案

要提取数据,请使用 CSV 解析器库或使用逗号作为分隔符手动拆分文件的每一行。 CSV 文件与文本文件没有区别;它们只是遵循一种独特的数据格式。

不需要中间数据结构。假设您的数据采用 [key],[value] 格式,请使用 unordered_map here 的 C++ 文档正确插入您的数据。

例子:

string line;
getline(file, line);

// simple split (alternatively, use strtok)
string key = line.substr(0,line.find(','));
string value = line.substr(line.find(',')+1);

unordered_map<string,string> mymap;
mymap[key] = value;

编辑:us2012 的 getline 方法带有分隔符也特别有用。另请记住,在读取带有分隔符的 CSV 作为数据时必须注意,通常由引号括起的值表示:

"hello, world","hola","mundo"

可以找到有关 CSV 格式的更多信息 here .

关于c++ - CSV 文件中的 Unordered_map 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14512818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com