#include <iostream> #include <string> #include <stdint.h> #include <vector> #include <stdio.h> #include <stdlib.h> #include <cmath> #include <iostream> #include <math.h> #include <fstream> #include <sstream> #include <algorithm> #include <chrono> #include <utility> #include <time.h> #include <tuple> #include <cstdint> #include <cstdio> #include <random> int main() { ifstream streamx("Bx.csv"); string linex; double Br[364][184]; const string delim = ","; int rowx = 0; int colx; while (getline(streamx, linex)) { colx = 0; for (string::size_type spos, epos = 0; (spos = linex.find_first_not_of(delim, epos)) != string::npos;) { string token = linex.substr(spos, (epos = linex.find_first_of(delim, spos)) - spos); Br[rowx][colx++] = stod(token); } ++rowx; } cout << Br[4][57];//読み込めたかのチェック return 0; } ```### 前提・実現したいこと C++でのcsvファイル読み込みについて質問です. 読み込みcsvファイルの情報をdouble型の2次元配列に格納したいですが,ネットでいろいろ調べたり自分でコードを作ってみてもabort()has been calledなどいくつかエラーが表示されてしまい先に進めません. Bx.csvという364*184のcsv形式ファイルをBr[364][184]という配列に入れたいと考えています. 質問前に散々調べましたがプログラミング初心者でして今現在の力では対応できませんでした. また同規模のcsvを一度に20枚ほど読み込む必要があるのですがその際に変更すべき個所なども教えていただけますと幸いです. 何卒ご教示お願いします. ### 発生している問題・エラーメッセージ エラーメッセージ debug error! abort() has been called ### 試したこと 以下の部分をmain関数の一部分に突っ込んでおり,これをコメントアウトすればプログラムは正常に動くので以上はこの部分だけだと思います.またCPUのメモリ容量の問題かと思いましたが,研究室の大きな計算機に放り込んでも同様のエラーを返されたので(そもそもそこまで大きなデータではないですし)それも無関係だと思います. ### 補足情報(FW/ツールのバージョンなど) visual studio 2015/2019/g++は最新版にアップデートしてあります.
回答3件
あなたの回答
tips
プレビュー