int _tmain(int argc, _TCHAR* argv[])
{
int N=3,a[3][3],i,j;
FILE *in;
if((in = fopen("in.txt","r"))==NULL)
{
cout << "error" << endl;
return 0;
}
fscanf(in,"%d",&N); //Считали N
for(i=0;i<N;i++) //считываем матрицу
{
for(j=0;j<N;j++)
fscanf(in,"%d",&a[j]);
}
fclose(in);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
cout << a[j];
cout <<endl;
}
getch();
}
КАК правильно считать матрицу из текстового файла?
Здравствуйте. Подскажите пожалуйста что неправильно в коде. Выдает неправильный результат. В заранее огромное спасибо.
Код:
#include <fstream>
#include <iostream>
#include <conio.h>
using namespace std;
void main()
{
ifstream inp("in.txt");
int len;
inp >> len;
int buf = 0;
for(int i = 0; i < len; ++i)
{
inp >> buf;
cout << buf << endl;
}
inp.close();
_getch();
}
#include <iostream>
#include <conio.h>
using namespace std;
void main()
{
ifstream inp("in.txt");
int len;
inp >> len;
int buf = 0;
for(int i = 0; i < len; ++i)
{
inp >> buf;
cout << buf << endl;
}
inp.close();
_getch();
}
по аналогии с твоей задачей... если каждый символ в файле - элемент матрицы, то и считывай по 1 символу, т.е. по char, а потом конвертируй его в число.
а любая ф-ция чтения будет считывать число до разделительного символа(пробел, табуляция, перевод строки, конец файла)
Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream in("in.txt");
int n;
in >> n;
int mas[3][3];
for(int i = 0; i<n; i++)
{
for(int j = 0; j<n; j++)
in >> mas[j];
}
in.close();
for(int i = 0; i<n; i++)
{
for(int j = 0; j<n; j++)
cout << mas[j];
cout <<endl;
}
getch();
}
#include <iostream>
#include <fstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream in("in.txt");
int n;
in >> n;
int mas[3][3];
for(int i = 0; i<n; i++)
{
for(int j = 0; j<n; j++)
in >> mas[j];
}
in.close();
for(int i = 0; i<n; i++)
{
for(int j = 0; j<n; j++)
cout << mas[j];
cout <<endl;
}
getch();
}
Попробуй использовать Debug, прогони пошагово и посмотри что не так в твоем алогоритме (я так делал), а так сложно сказать , что не правильно, не понятно что на входе, а что должно быть на выходе.
Цитата: Norgat
а любая ф-ция чтения будет считывать число до разделительного символа(пробел, табуляция, перевод строки, конец файла)
я это для кого писал? стенке?
чтобы считать цифры из файла обычным способом(тот который дал я), нужно что бы между цифрами был пробел.
т.е. вместо
Цитата:
3
123
123
123
123
123
123
надо:
Цитата:
3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
а если сильно надо считывать цифры содержащие по 1 разряду и не разделённые пробелами, то это нужно делать через считывание по 1 символу.
т.е. считывать по 1 символу(char) и переводить этот символ в число.
Цитата: Roman_pilot
Попробуй использовать Debug, прогони пошагово и посмотри что не так в твоем алогоритме (я так делал), а так сложно сказать , что не правильно, не понятно что на входе, а что должно быть на выходе.
да всё тут понятно, он считывает из файла числа в не инициализированную матрицу, в файле 3 числа(не считая первого), а он считывает 9 чисел... отсюда и та фигня, что идёт на консоль