解决中文编码不正确导致的乱码问题,调整部分输出格式

main
lensfrex 3 years ago
parent 707145a984
commit ebae589e37
Signed by: lensfrex
GPG Key ID: 0F69A0A2FBEE98A0
  1. 2
      .gitignore
  2. 11
      work20220325/.idea/encodings.xml
  3. 2
      work20220325/CMakeLists.txt
  4. 29
      work20220325/main.cpp
  5. 10
      work20220325/person/Person.cpp
  6. 4
      work20220325/person/students/Graduate.cpp
  7. 2
      work20220325/person/students/Student.cpp
  8. 4
      work20220325/person/students/TeachAssistant.cpp
  9. 4
      work20220325/person/teachers/Teacher.cpp

2
.gitignore vendored

@ -22,3 +22,5 @@
# CMake
cmake-build-*/
out/

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" defaultCharsetForPropertiesFiles="GBK">
<file url="file://$PROJECT_DIR$/main.cpp" charset="GBK" />
<file url="file://$PROJECT_DIR$/person" charset="GBK" />
<file url="file://$PROJECT_DIR$/person/Person.cpp" charset="GBK" />
<file url="file://$PROJECT_DIR$/person/students/Graduate.cpp" charset="GBK" />
<file url="file://$PROJECT_DIR$/person/students/TeachAssistant.h" charset="GBK" />
<file url="PROJECT" charset="GBK" />
</component>
</project>

@ -2,5 +2,5 @@ cmake_minimum_required(VERSION 3.21)
project(work20220325)
set(CMAKE_CXX_STANDARD 14)
add_compile_options(-finput-charset=GBK -fexec-charset=GBK)
add_executable(work20220325 main.cpp person/Person.cpp person/Person.h date/Date.cpp date/Date.h person/students/Student.cpp person/students/Student.h person/teachers/Teacher.cpp person/teachers/Teacher.h person/students/Graduate.cpp person/students/Graduate.h date/Date.cpp date/Date.h person/students/Student.cpp person/students/Student.h person/teachers/Teacher.cpp person/teachers/Teacher.h person/students/Graduate.cpp person/students/Graduate.h person/students/TeachAssistant.cpp person/students/TeachAssistant.h)

@ -0,0 +1,29 @@
#include <iostream>
#include "person/Person.h"
#include "person/students/Graduate.h"
#include "person/students/TeachAssistant.h"
int main() {
/*
* GBKUTF8
*
* CMake项目便使VStudio或者clion等支持cmake的IDE打开本项目
*/
// to avoid garbled when output Chinese character
// 防止中文乱码
setlocale(LC_ALL, "zh-CN");
Person baseInformation("id233333", "Lag Seeing", Person::SEX_MALE, "ident23333", Date(2002, 9, 6));
Person adviserBaseInformation("id0000000", "Goos Suede", Person::SEX_MALE, "ident000000", Date(1992, 1, 1));
Teacher adviser(adviserBaseInformation, "导师", "BEE-HIVE");
TeachAssistant teachAssistant(121, baseInformation, "不知道什么专业", adviser, "助教", "BEE-HIVE");
std::cout << teachAssistant.toString() << '\n';
std::cout << "\nover. If Chinese character can't be display correctly, please check the file encoding. (GBK)\n";
return 0;
}

@ -12,11 +12,11 @@ Person::Person(const Person &person) : id(person.id), name(person.name), sex(per
std::string Person::toString() {
std::stringstream output;
output
<< "编号:" << id << '\n'
<< "姓名:" << name << '\n'
<< "性别:" << sex << '\n'
<< "身份证号:" << identNumber << '\n'
<< "出生日期:" << birthday.toString() << '\n';
<< "编号:" << id << '\n'
<< "姓名:" << name << '\n'
<< "性别:" << sex << '\n'
<< "身份证号:" << identNumber << '\n'
<< "出生日期:" << birthday.toString();
return output.str();
}

@ -15,8 +15,8 @@ Graduate::Graduate(const Graduate &graduate) : subject(graduate.subject), advise
std::string Graduate::toString() {
std::stringstream output;
output << Student::toString() << '\n'
<< "专业:" << subject << '\n'
<< "导师:{ \n" << adviser.toString() << " \n}" << '\n';
<< "专业:" << subject << '\n'
<< "导师:{ \n" << adviser.toString() << " \n}" << '\n';
return output.str();
}

@ -18,7 +18,7 @@ std::string Student::toString() {
std::stringstream output;
output
<< Person::toString() << '\n'
<< "班级:" << classId;
<< "班级:" << classId;
return output.str();
}

@ -7,9 +7,9 @@ TeachAssistant::TeachAssistant(int classId, const Person &person, const std::str
std::string TeachAssistant::toString() {
std::stringstream output;
output << "[研究生身份信息]" << '\n'
output << "[研究生身份信息]" << '\n'
<< Graduate::toString() << '\n'
<< "[教师身份信息]" << '\n'
<< "[教师身份信息]" << '\n'
<< Teacher::toString();
return output.str();
}

@ -9,8 +9,8 @@ Teacher::Teacher(const Teacher &teacher) : department(teacher.department), job(t
std::string Teacher::toString() {
std::stringstream output;
output << Person::toString() + '\n'
<< "部门:" << department << '\n'
<< "职务" << job << '\n';
<< "部门:" << department << '\n'
<< "职务" << job;
return output.str();
}
Loading…
Cancel
Save