c++でファイルから複素数を読み込みたいのですが、方法が思いつきません。
ファイルには以下のような形式で複素数が書かれているとします。
------------------------------------------------------------------------
(1.23,2.34) (2.34,3.45) (3.45,4.56)
(4.56,5.67) (5.67,6.78) (6.78, 7.89)
・・・・・
------------------------------------------------------------------------
かっこの左側が実部で右側が虚部で、1つのかっこが1つの複素数をあらわしています。
このファイルを読み込んで、複素数のvector(vector<complex<double> >)をつくりたいです。
簡単なソース、または考え方をおしえていただけると助かります。
No.2ベストアンサー
- 回答日時:
できた(Visual C++ 2012)。
#include <complex>
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
int main( ) {
using namespace std;
vector<vector<complex<double>>> matrix;
ifstream file("complex.txt");
string line;
while ( getline(file,line) ) {
istringstream stream(line);
complex<double> c;
vector<complex<double>> row;
while ( stream >> c ) {
row.push_back(c);
}
matrix.push_back(row);
}
// 結果確認
for ( auto& row : matrix ) {
for ( auto& item : row ) {
cout << item << " ";
}
cout << endl;
}
}
No.1
- 回答日時:
#include <complex>
#include <iostream>
#include <fstream>
int main( ) {
using namespace std;
complex <double> c;
ifstream stream("complex.txt");
while ( stream >> c ) {
cout << c << endl;
}
}
/* 実行結果(Visual C++ 2012)
(1.23,2.34)
(2.34,3.45)
(3.45,4.56)
(4.56,5.67)
(5.67,6.78)
(6.78,7.89)
*/
> このファイルを読み込んで、複素数のvector(vector<complex<double> >)をつくりたいです。
getlineで一行ずつ読み、上記と同様。
この回答への補足
回答ありがとうございます。質問をまちがえてしまいました。1行目をvector<complex<double> > v1に入れ、2行目をvector<complex<double> > v2に入れるにはどうしたらよいでしょうか?
補足日時:2013/02/13 22:32お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- 高校 述語論理の基本的な質問 3 2022/04/23 10:35
- 物理学 内積 3 2022/12/04 18:41
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- 数学 複素関数にロピタルの定理を使おうとしている回答者は、複素関数論はおろか微積分学もよく分かっていない、 5 2022/12/28 18:02
- その他(教育・科学・学問) 関数、写像について 1 2022/04/10 23:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
enumの値から定義名を文字列化...
-
CStringとString
-
なぜ、C++の標準ヘッダをインク...
-
wstringの主力
-
MingwでC++のソースがコンパイ...
-
構文エラーが出ているのですが...
-
std::wstringのメモリリークに...
-
C++での <iostream.h>と<iostre...
-
c++ ファイルからの複素数の読...
-
string型の固定長文字列を配列...
-
C言語のエラーを修正したい
-
_tcscat がうまくいきません(V...
-
リモートデスクトップの接続元I...
-
gccでコンパイル時のエラー
-
iostream インクルード時に発生...
-
VC++で文字列から任意の文字を...
-
C言語のポインターで詰まっている
-
ハミング符号の解読について
-
winpcapを用いたプログラミング
-
getlineについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
switch文のエラーについて
-
構文エラーが出ているのですが...
-
VC++で文字列から任意の文字を...
-
enumの値から定義名を文字列化...
-
空ENTERの判別
-
C++でShowCursorを使いたい。
-
なぜ、C++の標準ヘッダをインク...
-
#define中の#のエスケープ
-
C++で、テキストファイルを一行...
-
gccでコンパイル時のエラー
-
C言語のエラーを修正したい
-
#include "fstream.h"
-
C言語のポインターで詰まっている
-
リモートデスクトップの接続元I...
-
構造体配列のvectorへの変換と...
-
JPEGやPNGが読めるLoadImage関数
-
VS2019でofstreamが未定義になる
-
構造体に決められた文字列を入...
-
VHDLのsignedとunsignedの違いは?
-
std::wstringのメモリリークに...
おすすめ情報