如何解决为什么会出现这个“\r”?
我目前正在学习 C++,并尝试使用 JSON。
这是我的代码:
#include "main.hpp"
#define MAX_USERS_COUNT 5000
using json = nlohmann::json;
namespace user {
struct datas {
int ID;
std::string PIN;
std::string name;
std::string email;
int age;
};
// convert datas to JSON
void to_json(nlohmann::json& json,const user::datas& datas) {
json = nlohmann::json { {"ID",datas.ID},{"PIN",datas.PIN},/*{"name",datas.name},*/ {"email",datas.email},{"age",datas.age} };
}
// convert JSON to datas
void from_json(const nlohmann::json& json,user::datas& datas) {
json.at("ID").get_to(datas.ID);
json.at("PIN").get_to(datas.PIN);
/*json.at("name").get_to(datas.name);*/
json.at("email").get_to(datas.email);
json.at("age").get_to(datas.age);
}
}
nlohmann::json convertDatasToJSON(nlohmann::json&,user::datas,std::string);
int main(int argc,char *argv[]) {
user::datas prototype[MAX_USERS_COUNT]; // create an array of users with a max count
nlohmann::json jsonDatas;
std::ifstream namesFile("./res/files/learnjson/names.txt");
std::string line;
std::vector<std::string> namesList = {};
while(getline(namesFile,line)) {
namesList.push_back(line);
}
for(int i = 0; i < 5; i++) {
int index = rand() % namesList.size() + 1;
prototype[i] = {
i,std::to_string(rand() % 999999999 + 100000000),// generate a number from 100000000 to 999999999
namesList[index],// ex: "name"
namesList[index] + "@e-mail.com",rand() % 100 + 1 // generate a number from 1 to 100
};
convertDatasToJSON(jsonDatas,prototype[i],"users");
}
std::cout << std::setw(4) << jsonDatas << std::endl;
namesFile.close();
return 0;
}
// convert user datas to JSON
nlohmann::json convertDatasToJSON(nlohmann::json& json,user::datas datas,std::string jsonLocation) {
json[jsonLocation] [datas.name] = datas;
return json;
}
我正在使用的姓名列表文件是这样制作的:
Kikelia
Kiker
Kiki
Kila
Kilah
Kilan
Kilar
Kilbride
Kilby
Kile
Kiley
Kilgore
Kilian
Kilk
Killam
Killarney
Killen
一切都完美无缺(这就是我的 json 生成方式):
{
"users": {
"Elayne\r": {
"ID": 4,"PIN": "174243042","age": 88,"email": "Elayne\r@e-mail.com"
},"Essie\r": {
"ID": 2,"PIN": "557850879","age": 24,"email": "Essie\r@e-mail.com"
},"Fowler\r": {
"ID": 3,"PIN": "923564440","age": 66,"email": "Fowler\r@e-mail.com"
},"O'Rourke\r": {
"ID": 1,"PIN": "244108931","age": 73,"email": "O'Rourke\r@e-mail.com"
},"Rasmussen\r": {
"ID": 0,"PIN": "382475249","age": 74,"email": "Rasmussen\r@e-mail.com"
}
}
}
有人能帮我解释一下为什么出现那些“\r”吗? 提前致谢 !!祝你有美好的一天!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。