質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Cygwin

Cygwinは、Unixのような環境を、Windows上で構築させるコマンドラインインターフェースです。

g++

g++はGNUコンパイラコレクション(gcc)のC++コンパイラーです。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1357閲覧

c++のコンパイルがうまくできません

lawa

総合スコア3

Cygwin

Cygwinは、Unixのような環境を、Windows上で構築させるコマンドラインインターフェースです。

g++

g++はGNUコンパイラコレクション(gcc)のC++コンパイラーです。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/09/29 08:35

編集2020/09/29 09:11

前提・実現したいこと

C++で書かれたファイルをダウンロードし、コンパイルしたのですがエラーが出てしまい、原因がわかりません。

色々と調べたもののよくわからず、質問させていただきました。
どなたか教えていただけるとありがたいです。

エラーメッセージ

最初に出てきたエラーメッセージです。

$ g++ childDriver.cpp In file included from ../tMesh/tMesh.h:286, from ../Inclusions.h:29, from childInterface.h:33, from childDriver.cpp:19: ../tMesh/tMesh.cpp: メンバ関数 ‘void tMesh<tSubNode>::MakeRandomPointsFromArcGrid(const tInputFile&)’ 内: ../tMesh/tMesh.cpp:1847:42: エラー: no match for ‘operator<<’ (operand types are ‘std::basic_ostream<char>’ and ‘std::ifstream’ {aka ‘std::basic_ifstream<char>’}) 1847 | std::cout << "finished reading file," << gridfile << std::endl; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~ ~~~~~~~~ | | | | std::basic_ostream<char> std::ifstream {aka std::basic_ifstream<char>}

該当すると思われるプログラム

プログラムが長く、また複数のファイルに及ぶので、エラーが出た辺りのコードのみを載せます。

c++

1 maxx = minx + ( numcols - 1 ) * delgrid; 2 maxy = miny + ( numrows - 1 ) * delgrid; 3 dx = maxx - minx; 4 dy = maxy - miny; 5 di = numcols; 6 dj = numrows; 7 // create matrix from input file: 8 tMatrix< double > elev( numrows, numcols ); 9 for( j=0; j<numrows; j++ ) 10 { 11 for( i=0; i<numcols; i++ ) 12 { 13 if( gridfile.eof() ) 14 ReportFatalError( "Reached end-of-file while reading points." ); 15 gridfile >> elev( j, i ); 16 } 17 } 18 gridfile.close(); 19 std::cout << "finished reading file," << gridfile << std::endl; 20 // Create the 3 nodes that form the supertriangle and place them on the 21 // node list in counter-clockwise order. (Note that the base and height 22 // of the supertriangle are 5 times the 23 // width and height, respectively, of the rectangle that encloses the 24 // points.) Assigning the IDs allows us to retrieve and delete these 25 // nodes when we're done creating the mesh. 26 tempnode.set3DCoords( minx-2*dx, miny-2*dy, 0.0 ); 27 tempnode.setBoundaryFlag( kClosedBoundary ); 28 tempnode.setID( -3 ); 29 nodeList.insertAtBack( tempnode ); 30 tempnode.set3DCoords( maxx+2*dx, miny-2*dy, 0.0 ); 31 tempnode.setID( -2 ); 32 nodeList.insertAtBack( tempnode ); 33 tempnode.set3DCoords( minx+0.5*dx, maxy+2*dy, 0.0 ); 34 tempnode.setID( -1 ); 35 nodeList.insertAtBack( tempnode ); 36

補足情報(FW/ツールのバージョンなど)

windows10
cygwin   を使用しています。

このプログラムはUNIXプラットフォーム上のC ++で開発されたそうです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/09/29 08:45

コードを提示しましょう
lawa

2020/09/29 09:12

ご指摘ありがとうございます。 プログラムが長く、また複数のファイルに及ぶので、エラーが出た辺りのコードのみを載せました。 エラーで出ていたファイルの行数あたりを抜粋したのですが、これでいかがでしょうか。
guest

回答1

0

ベストアンサー

std::cout << "finished reading file," << gridfile << std::endl;

gridfileの型はifstreamだと思われますが,こんなことはできない,というエラーです.
(coutへのどんな出力を期待されているのか?)


問題をシンプルに書けば,

C++

1std::ifstream F; 2std::cout << F; //これができない

投稿2020/09/29 09:32

編集2020/09/29 09:34
fana

総合スコア11996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lawa

2020/09/30 01:13

わかりやすい説明、ありがとうございます。 この行をコメントアウトしたところ、うまくいきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問