aimhabo
//针对COCO标签只有单行,打开/修改非常慢的问题(虽然本程序跑起来也不快,但至少以后用Notepad++修改起来会快点)

#include <iostream> #include <fstream> #include <string> #include <vector> using namespace std; int main(){ ifstream src("原.json"); ofstream dst("新.json"); string getall; getline(src, getall); string space = " "; size_t count_of_space = 0; size_t n = getall.size(); bool inmark = false; for (size_t i = 0; i < n; ++i){ char c = getall[i]; if (c < 1)break; //printf("%c[%d/%d]\n", c, i, n); if (c == \'\"\'){ inmark = !inmark; } if (inmark){ dst << c; continue; } switch (c){ case \'[\': case \'{\': count_of_space += 1; dst << c << \'\n\'; for (size_t j = 0; j < count_of_space; ++j)dst << space; break; case \']\': count_of_space -= 1; if (count_of_space < 0)count_of_space = 0; dst << \'\n\'; for (size_t j = 0; j < count_of_space; ++j)dst << space; dst << \']\'; if (i + 3 < n){ if (getall[i + 1] != \',\'&&getall[i + 2] != \',\')dst << \'\n\'; } break; case \'}\': count_of_space -= 1; if (count_of_space < 0)count_of_space = 0; dst << \'\n\'; for (size_t j = 0; j < count_of_space; ++j)dst << space; dst << \'}\'; if (i + 3 < n){ if(getall[i + 1] != \',\'&&getall[i + 2] != \',\')dst << \'\n\'; } break; case \',\': dst << \',\'; case \'\n\': dst << \'\n\'; if (count_of_space < 0)count_of_space = 0; for (size_t j = 0; j < count_of_space; ++j)dst << space; break; default: dst << c; break; } } return 0; }

 

分类:

技术点:

相关文章:

  • 2022-02-16
  • 2021-12-12
  • 2021-12-08
  • 2021-07-19
  • 2022-02-12
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-09
  • 2021-06-29
  • 2021-07-22
相关资源
相似解决方案