ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Задачка по С++
  #1  
Старый 19.12.2006, 22:09
Аватар для NaX[no]rT
NaX[no]rT
Members of Antichat
Регистрация: 03.09.2005
Сообщений: 594
Провел на форуме:
3606217

Репутация: 685


Отправить сообщение для NaX[no]rT с помощью ICQ
Cool Задачка по С++

Вообщем есть файл, в нем примерно такие данные:
Код:
1 1 2 3 1
2 2 2 3 3
1 2 5 34 32
345 3 234 23 23
Как средствами С++ выдрать эти данные из файла и подготовить их к дальнейшей работе. Интересны ваши предложения, по решению данной задачи.
 
Ответить с цитированием

  #2  
Старый 19.12.2006, 22:15
Аватар для nc.STRIEM
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

а че мало читалок файлов??
тем же ifstream можно, или fread() или fgetc() вариантов масса!
а ваше лучше раскажи куда те их записать то надо?? в масив? в чаровский или интовый?
 
Ответить с цитированием

  #3  
Старый 19.12.2006, 22:33
Аватар для NaX[no]rT
NaX[no]rT
Members of Antichat
Регистрация: 03.09.2005
Сообщений: 594
Провел на форуме:
3606217

Репутация: 685


Отправить сообщение для NaX[no]rT с помощью ICQ
По умолчанию

В массив int
 
Ответить с цитированием

  #4  
Старый 19.12.2006, 23:38
Аватар для nc.STRIEM
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

вот лови один из вариантов
Код:
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;

void main(void)
{
	FILE *f;
	f=fopen("1.txt","r");
	char c[16];
	int byf[128],i=0,j=0;

  while(1)
  {
     i=0;
	 while(1)
	 {
       c[i]=fgetc(f);
	   if(c[i]==' ' || c[i]=='\n' || c[i]=='\t' || c[i]==EOF) 
		 break;
	   i++;
	 }
	 byf[j]=atoi(c);
	 j++;
	 if(c[i]==EOF)
		break;
  }

		for(i=0;i<j;i++)
			cout<<byf[i]<<endl;
	
}
 
Ответить с цитированием

  #5  
Старый 21.12.2006, 01:34
Аватар для NaX[no]rT
NaX[no]rT
Members of Antichat
Регистрация: 03.09.2005
Сообщений: 594
Провел на форуме:
3606217

Репутация: 685


Отправить сообщение для NaX[no]rT с помощью ICQ
По умолчанию

Вариант, но не нравится мне) оставлю свою организацию тогда (:
 
Ответить с цитированием

  #6  
Старый 21.12.2006, 01:38
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

элементарно, что тут сложного?
создаем двухмерная массив (матрицу) и пишем туда числа.
ifstream/fscanf
 
Ответить с цитированием

  #7  
Старый 21.12.2006, 02:21
Аватар для nc.STRIEM
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

Цитата:
Сообщение от NaX[no]r†  
Вариант, но не нравится мне) оставлю свою организацию тогда (:
а что не нравиться?? те надо чтоб как матрицу сохраняло?? в двумерный массив
 
Ответить с цитированием

решение
  #8  
Старый 23.12.2006, 04:58
Аватар для sni4ok
sni4ok
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме:
1174659

Репутация: 175
Отправить сообщение для sni4ok с помощью ICQ
По умолчанию решение

Код:
#include <string>
#include <vector>
#include <fstream>
#include <sstream>

int _tmain(int argc, _TCHAR* argv[])
{

	//вариант 1: загоняем все значения в вектор
	std::vector<int> buf;
	{
		std::ifstream f("C:/file.txt");
		std::copy(std::istream_iterator<int>(f),std::istream_iterator<int>(),std::back_inserter(buf));
	}

	//вариант 2: загоняем все значения в вектор векторов
	std::vector<std::vector<int> > buf2;
	std::ifstream f("C:/file.txt");
	{
		std::string tmp;
		while(std::getline(f,tmp,'\n')){
			std::vector<int> buf;
			std::stringstream ss;
			ss << tmp;
			std::copy(std::istream_iterator<int>(ss),std::istream_iterator<int>(),std::back_inserter(buf));
			buf2.push_back(buf);
		}
	}
	return 0;
}
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачка для админов. Две сетевых и два провайдера. Егорыч+++ *nix 6 12.12.2006 17:03
Что можно сделать из 2 строчек - задачка sposobny АнтиАдмин 0 21.01.2005 00:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ