2016-04-11 8 views
1

私はC++で始めました。 とにかく、テキストファイルから内容を(マトリックス形式で)読み込み、表示しようとしています。行列ファイルを行と列に表示するには

出力をテキストファイルと同じように表示するのではなく、ファイルを読み込むことができますが、内容はすべて1行に収められています。私はその行列が異なるいくつかのファイルを持っているので、コードを強制することはできません。

例: matrix01

9 7 6 
8 -1 0 

それともmatrix02

2 10 
3 5 
-7 25 

次のコードは、私のファイル入力で、私は代わりに、単一の行/列の行と列にそれを作るために何ができるのでしょうか?

#include <iostream> 
#include <fstream> 
using namespace std; 

int main(){ 

    ifstream fin; //file input stream 
    ofstream fout; //file output stream 

    fin.open("/Desktop/matrix_a.txt"); 
    fout.open("/Desktop/matrix_a.out"); 
    string msg; 


    while (fin>>msg){//read until eof 
     cout << msg << " "; 
    } 


    fin.close(); 
    fout.close(); 

} 
+0

私が入力したエクストラ/タイプミスコードを編集しました – dissidia

答えて

2

あなたの状態:

私はすべての単一の行の内容を取得しています。あなたはstd::endlstd::coutに、ここに書いていないので、これがある

while (fin>>msg){//read until eof 
    cout << "" << msg << " "; 
} 

、あなたはいつでも改行を印刷して終了していない:

あなたのコードは次の操作を行います。 operator<<は、ステートメントの最後に改行を自動的に追加しません。あなたが望むなら、それはあなたの責任です。

+0

こんにちは..私は 'endl'で追加しようとしましたが、matrix01を例にして2行/行を得るのではなく、6行/行代わりに – dissidia

+0

演算子>>は、空白で区切られた単一の単語を読み取ります。一度に1行を読みたい場合は、演算子>> –

+0

@dissidiaの代わりにstd :: getline()を使うと、ファイルから読み込んだ行(およびclomuns)の数を格納する必要があります。各行の後に改行(あなたがその情報でできる他の有用なものの中で)を印刷します。 –

関連する問題