gpt4 book ai didi

c++ - 将map 保存到文本文件

转载 作者:行者123 更新时间:2023-12-01 15:12:31 27 4
gpt4 key购买 nike

我有一个字符串int映射,我想将其保存为txt。我已经有一段时间没有使用c++了,我对指针之类的东西感到迷茫。

int WriteFile(string fname, map<string, int>* m) {
int count = 0;
if (m->empty())
return 0;

FILE* fp = fopen(fname.c_str(), "w");
if (!fp)
return -errno;

for (map<string, int>::iterator it = m->begin(); it != m->end(); it++) {
fprintf(fp, "%s=%s\n", it->first.c_str(), &it->second);
count++;
}

fclose(fp);
return count;
}
问题是int被写为垃圾字符。

最佳答案

%s用于打印字符串,您通过将类型错误的数据传递给fprintf()来调用未定义的行为。
您应该使用%d格式来打印int

fprintf(fp, "%s=%d\n", it->first.c_str(), it->second);

关于c++ - 将map <string,int>保存到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63098625/

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