Я пытаюсь написать программу на C++, чтобы прочитать файл txt, содержащий данные (матрица с матрицей матрицы 122X300), в мой код и получить его для отображения. Ниже приведен код, который я написал после многократного обращения к Google и многих подобных вопросов на этом сайте. При запуске кода я не получаю никаких ошибок, однако он дает мне огромный список чисел, которые, по моему мнению, не имеют никакого смысла. Ниже приведен код: Любая помощь будет отличной. Я не знаю, где я ошибаюсь. Благодарю.Не получать выходные данные
DID некоторые изменения после рассмотрения комментарий ниже по @ZekeMarsh, сейчас проблема в том, что мой текст данные, как:
выход я получаю это:
Счетчик строк не переходит к следующей строке, а продолжает в той же строке после приращения .... Не знаю, почему. Измененный код выглядит следующим образом:
#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;
}
Может быть, вам нужно отлаживать его с помощью F-10 ключ, чтобы увидеть, что именно происходит в каждой строке кода? –
@FirstStep Спасибо, что вернулись к этому так быстро ... это правильный код? .. как ты помечаешь кого-то .. в первый раз на этом сайте .... О.оооо! – fattypanda
Если он скомпилирован, тогда код будет правильным (No Syntax Error). Однако проблема может быть в значениях от/до переменных и объектов (Логическая ошибка). Единственный способ найти это - шаг (ping) - над вашим кодом, оператором с помощью ключа F-10 при проверке значения каждой переменной на вашем пути –