Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2009, 15:49   #1
pinch000
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 42
По умолчанию не могу считать двумерный массив=(((

помогите пож-та в не могу считать двумерный массив с файла и вывести его на экран =(((

Код:
#include "stdafx.h"
#include "iostream"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int a[100][100];
	FILE *f;
	char b[100];
	bool z=true;
	do{
	cout<<"Sortirovka massiva metodom vstavok\n"; 
	cout<<"Vvedite adres faila:\n";
	cout<<"Format vvoda-disk_name:\\directory\\...\\name.txt\n";
    cin>>b;
    if ((f=fopen(b,"r"))==0)
	cout<<"Fail ne naiden!\n";
	else z=false;
	}while(z==true);
	z=true;
	fread(&a, sizeof(a), 1, f);
	cout<<a<<' ';
return 0;
}
pinch000 вне форума Ответить с цитированием
Старый 04.11.2009, 15:54   #2
mitryz
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 29
По умолчанию

fread(&a, sizeof(a), 1, f); - неправильно
длинна int = 4
надо fread(a, sizeof(a), sizeof(int), f);

Как ты массив выводишь? И в каком виде он в файле хранится?
A, B, C++,..

Последний раз редактировалось Stilet; 04.11.2009 в 16:03.
mitryz вне форума Ответить с цитированием
Старый 04.11.2009, 16:01   #3
pinch000
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 42
По умолчанию

мне нужно считать двумерный массив состоящих из целых чисел и вывести его на экран
я попробовал int що то не пашет=((((
pinch000 вне форума Ответить с цитированием
Старый 04.11.2009, 16:14   #4
pinch000
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 42
По умолчанию

вот допустим есть двумерный массив в txt файле такого вида(пример):

123
456
789

его надо вывести на экран
pinch000 вне форума Ответить с цитированием
Старый 04.11.2009, 16:19   #5
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Разбейте цифры каждой строки пробелами, тогда можно будет так:
Код:
for(int i = 0; i < 3; i++)
    for(int j = 0; j < 3; j++)
        fscanf(f, "%d", &a[i][j]);
netrino вне форума Ответить с цитированием
Старый 04.11.2009, 16:36   #6
pinch000
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 42
По умолчанию

що то не получается=(((
pinch000 вне форума Ответить с цитированием
Старый 04.11.2009, 16:39   #7
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от pinch000 Посмотреть сообщение
що то не получается=(((
Что не получается? У меня так работает.
netrino вне форума Ответить с цитированием
Старый 04.11.2009, 16:46   #8
pinch000
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 42
По умолчанию

ну вот код собственно:

Код:
#include "stdafx.h"
#include "iostream"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int a[3][3];
	FILE *f;
	char b[100];
	bool z=true;
	do{
	cout<<"Vvedite adres faila:\n";
	cout<<"Format vvoda-disk_name:\\directory\\...\\name.txt\n";
    cin>>b;
    if ((f=fopen(b,"r"))==0)
	cout<<"Fail ne naiden!\n";
	else z=false;
	}while(z==true);
	z=true;
	for(int i = 0; i < 3; i++)
    for(int j = 0; j < 3; j++)
    fscanf(f, "%d", &a[i][j]);
fclose(f);
return 0;
}
fscanf-вот это выводит массив на экран???
pinch000 вне форума Ответить с цитированием
Старый 04.11.2009, 16:50   #9
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от pinch000 Посмотреть сообщение
fscanf-вот это выводит массив на экран???
Нет, эта функция читает из файла в переменную. То есть заполняет Ваш массив данными из файла. Для вывода массива добавьте после этого аналогичный цикл, только вместо fscanf используйте printf, или cout.
fscanf
printf
netrino вне форума Ответить с цитированием
Старый 04.11.2009, 16:57   #10
pinch000
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 42
По умолчанию

тоже не пашет =(((

Код:
#include "stdafx.h"
#include "iostream"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int a[3][3];
	FILE *f;
	char b[100];
	bool z=true;
	do{
	cout<<"Vvedite adres faila:\n";
	cout<<"Format vvoda-disk_name:\\directory\\...\\name.txt\n";
    cin>>b;
    if ((f=fopen(b,"r"))==0)
	cout<<"Fail ne naiden!\n";
	else z=false;
	}while(z==true);
	z=true;
	for(int i = 0; i < 3; i++)
    for(int j = 0; j < 3; j++)
    fscanf(f, "%d", &a[i][j]);
	for(int i = 0; i < 3; i++)
    for(int j = 0; j < 3; j++)
		cout<<a<<' ';
fclose(f);
return 0;
}
pinch000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив mislagusla Помощь студентам 11 28.05.2010 15:21
Двумерный Массив n01R Помощь студентам 9 19.12.2009 16:41
Двумерный массив. Mirel Паскаль, Turbo Pascal, PascalABC.NET 5 18.05.2009 22:59
Двумерный массив. kGxDD Паскаль, Turbo Pascal, PascalABC.NET 0 15.04.2009 21:43
считать елементы файла в массив XfighT Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 14.01.2008 16:35