【卒研まとめ2】作ったツール達など

投稿者: | 2020年3月9日

卒研やってるとき色々と迷走していたので、色々なコードを書いてました。その中で色々なことを調べていたのでそれらをまとめていきたいと思います。

1.stoi関数

C++の stoi 関数は適当に使っているとエラーが返ってくることがよくあります。

https://github.com/CtrlGit/cpp-tutorial/blob/master/doc/xx-ExceptionHandling.md

そのため、エラーが出たら例外処理を書き加えるか、先に書いておくとでなくなります。

#include 
#include 
using namespace std;

int main(int argc, char const *argv[]) {
  string s = "。оО(。´•ㅅ•。)Оо。";  //いつでもミクサはあなたを見ている
  try{
    int a = stoi(s);
    cout << a << endl;
  }
  catch(const std::invalid_argument& e){
    cout << "invalid argument" << endl;
  }
  catch(const std::out_of_range& e){
    cout << "Out of range" <<endl; }="" return="" 0;="" }<="" code=""></endl;>

また、詳しくは上のサイトか、前に書いたページを参照して下さい。

参照:http://ateruimashin.com/diary/2020/01/stoi-error/

2.改行コード

ubuntu機でファイルを作って、windows機で処理していました。ubuntu機の性能が低すぎたからです。

しかし、ubuntu環境で作り出したテキストファイルをwindows環境で開くと、改行がうまくされません。

これは、環境によって改行コードが違うことによって発生します。

windows環境ではCRLF、mac環境ではCR、unix環境ではLFとなります。

参考:https://qiita.com/uhooi/items/dc74ff3434aecb17faa2

環境をまたぐと改行コードを変換する必要があります。powersehll使えば一括で処理できます。

ls | foreach{ (cat -encoding UTF8  $_ ) -join "rn" | set-content -encoding UTF8 $_ }

参照:http://ateruimashin.com/diary/2020/01/windows-transform-tags/

3.C++での並列化

opm.hを使って#pragma omp parallel を付け足せば並列化されます。

詳細:http://ateruimashin.com/diary/2020/01/c-parallel/

4.テキストファイルをxlsxファイルに変換する

pythonで書いたツールです。やりたいことは単純ですが、まあまあ苦労しました。

しかし、pythonの知識が0でもやりたいことをやるコードは書けるんだなと思いました。python便利。

コード:http://ateruimashin.com/diary/2020/01/python-txt-to-python

あと色々作ってたんですが、ろくなもんじゃないのでこれだけにします。あとエラー周りをずっとググってました。エラー関連はたまに英文サイトですら出てこないことがあるので骨が折れました。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください