Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

19.12.2006, 22:09
|
|
Members of Antichat
Регистрация: 03.09.2005
Сообщений: 594
Провел на форуме: 3606217
Репутация:
685
|
|
Задачка по С++
Вообщем есть файл, в нем примерно такие данные:
Код:
1 1 2 3 1
2 2 2 3 3
1 2 5 34 32
345 3 234 23 23
Как средствами С++ выдрать эти данные из файла и подготовить их к дальнейшей работе. Интересны ваши предложения, по решению данной задачи.
|
|
|

19.12.2006, 22:15
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
а че мало читалок файлов??
тем же ifstream можно, или fread() или fgetc() вариантов масса!
а ваше лучше раскажи куда те их записать то надо?? в масив? в чаровский или интовый?
|
|
|

19.12.2006, 22:33
|
|
Members of Antichat
Регистрация: 03.09.2005
Сообщений: 594
Провел на форуме: 3606217
Репутация:
685
|
|
В массив int
|
|
|

19.12.2006, 23:38
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
вот лови один из вариантов
Код:
#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;
}
|
|
|

21.12.2006, 01:34
|
|
Members of Antichat
Регистрация: 03.09.2005
Сообщений: 594
Провел на форуме: 3606217
Репутация:
685
|
|
Вариант, но не нравится мне) оставлю свою организацию тогда (:
|
|
|

21.12.2006, 01:38
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
элементарно, что тут сложного?
создаем двухмерная массив (матрицу) и пишем туда числа.
ifstream/fscanf
|
|
|

21.12.2006, 02:21
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
Сообщение от NaX[no]r†
Вариант, но не нравится мне) оставлю свою организацию тогда (:
а что не нравиться?? те надо чтоб как матрицу сохраняло?? в двумерный массив
|
|
|

23.12.2006, 04:58
|
|
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме: 1174659
Репутация:
175
|
|
решение
Код:
#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;
}
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|