データを含むtxtファイル(122X300マトリックス - タブ区切りのマトリックス)を自分のコードに読み込んで表示するためのC++プログラムを作成しようとしています。以下は私がこのサイトでgoogleと多くの同様の質問に広範囲に言及した後に書いたコードです。コードを実行すると、エラーは発生しませんが、何の意味もない数字の膨大なリストが表示されます。以下はコードです:どんな助けも素晴らしいでしょう。私はどこが間違っているのか分かりません。ありがとう。私はほしい出力を得ていません
が@ZekeMarshで以下のコメントを考慮した後にいくつかの変更をDID、問題は今、私のテキストデータが似ているということです。
:私は取得しています出力はこれです
行カウンタは次の行に移動せず、インクリメント後も同じ行に続きます。理由は考えられません。変更されたコードは以下の通りです:
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;
int main(){
int HEIGHT = 3;
int WIDTH = 2;
int array_req[HEIGHT][WIDTH];
string userinputprompt, filename;
userinputprompt = "Data Filename: ";
cout<<userinputprompt<<endl;
getline(cin,filename);
ifstream inputfile;
inputfile.open(filename.c_str());
for(int i=0; i<HEIGHT; i++)
{
for(int j=0; j<WIDTH; j++)
{
/*if(!(inputfile>>array_req[i][j]))
{
cerr<<"Error";
break;
}
else if(!inputfile) // its error.. , can use a cerr here...
{
cerr<<"Error";
break;
}
else*/
inputfile>>array_req[i][j];
cout<<i<<","<<j<<"-->"<<array_req[i][j]<<endl;
}
/* This is not needed, read above comment
else
{
inputfile >> array_req[i][j];
}*/
}
for(int p=0; p<HEIGHT; p++)
{
for(int q=0; q<WIDTH; q++)
{
cout<<array_req[p][q]<<" ";
}
cout<<"\n";
}
inputfile.close();
getchar();
return 0;
}
です。 EDITED CODE - 出力配列はヌル行列です。助けてください。コードの何が間違っていますか..正しくコンパイルしてください。私はここで読む多くの例に基づいてgetlineとstringstreamを使って行ごとに読み込みしようとしています。すべての
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
#include <sstream>
#include <stdlib.h>
const int HEIGHT = 3;
const int WIDTH = 4;
const int BUFFSIZE = 10000;
using namespace std;
int main(){
int array_req [HEIGHT][WIDTH];
char buff[BUFFSIZE];
string userinputprompt, filename;
userinputprompt = "COLORDATA FILENAME: ";
cout<<userinputprompt<<endl;
getline(cin,filename);
ifstream inputfile;
stringstream ss;
inputfile.open(filename.c_str());
for (int i=0; i<HEIGHT; i++)
{
inputfile.getline(buff,BUFFSIZE,'\n');
ss<<buff;
for(int j=0;j<WIDTH; j++)
{
ss.getline(buff,1000,'\n');
array_req[i][j]=atoi(buff);
}
ss<<"";
ss.clear();
}
for(int p=0; p<HEIGHT; p++)
{
for(int q=0; q<WIDTH; q++)
{
cout<<array_req[p][q]<<" ";
}
cout<<"\n";
}
inputfile.close();
getchar();
return 0;
}
:
編集:私はそれはあなたが探しているものだけであると信じてここでは、唯一の読取部でありますコードの? –
@FirstStepこれをすばやく元に戻していただきありがとうございます...コードは正しいですか? ..あなたは誰かをタグ付けしています...このサイトで私の初めてのことを... .... O.o oops! – fattypanda
コンパイルした場合、コードは正しい(構文エラーなし)。しかし、問題は変数とオブジェクトからの値(論理エラー)にある可能性があります。それを見つけるための唯一の方法は、ステップ(ping)です - あなたのコード、文ごとのステートメントはあなたの道にあるすべての変数の値をチェックしながらF-10キーを使用して –