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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.04.2011, 23:50   #1
KostyaS
Пользователь
 
Регистрация: 16.11.2010
Сообщений: 24
Сообщение proga

Всем привет,народ проблема в коде ,не могу понять в чем именно
само задание:Пользователь указывает сколько файлов обработать, считать инфорамцию из файлов в один символьный массив,
разбить полученную информацию на заданное пользователем число частей, каждая часть записывается в одельный файл(части одинакового размера).
Имя файла генерируется фунцией strcat и itoa. Собрать информацию из всех файлов в один. Показать размер текста до разбиения на части и после.
код проги
Код:
#include<iostream>
#include<windows.h>
#include<conio.h>
#include "head.h"
using namespace std;
void main()
{
	SetConsoleOutputCP(1251);//для вывода русского текста
	SetConsoleCP(1251);//для ввода русского текста
	
	int N;
	cout<<"Укажите количество файлов"<<endl;
	cin>>N;
	char Text[100000]={0};
	char **imia=new char*[N];
	for(int i=0;i<N;i++)
	{
		imia[i]=new char [20];
	}

	read_file(imia,N);
	formiruem_text(imia,N,Text);
	razbienie(Text);//formiruem_text(imia,N,Text);
	cout<<Text<<endl;
}
Код:
#include<iostream>
#include<windows.h>
#include<conio.h>
#include<stdlib.h>
 #include "head.h"
using namespace std;
//Функция формирует массив строк imia,
//который содержит названия файлов, из которых считывается текст.
//N - количество файлов, указанное пользователем
void read_file(char **imia,int N)
{

	for(int i=0;i<N;i++)
	{
		cout<<"Введите имя файла №"<<i<<"    ";
		do
		{
			gets(imia[i]);
		}
		while(strlen(imia[i])==0);
		strcat(imia[i],".txt");
		cout<<endl;
	}
}
//Фукнция формирует строку Text.
//Строка содержит информацию из файлов, которые задал пользователь
//N - количество файлов, задано пользователем
void formiruem_text(char **imia,int N,char Text[])
{
	char Buffer[10000]={0};
	FILE *pf;
	
	for(int i=0;i<N;i++)
	{
		pf=fopen(imia[i],"r");
		if(pf==NULL)
		{
			cout<<"ERROR!"<<endl;
			exit(0);
		}
		while(!feof(pf))//до конца файла
		{
		//чтение строк
		fgets(Buffer,10000,pf);
		strcat(Text,Buffer);
		}
		fclose(pf);
	}
	cout<<"Размер текста "<<strlen(Text)<<endl;
}
//Разбивает строку Text на m частей(задано пользователем)
//и записывает каждую часть в файл, имя которого хранит массив строк Part
void razbienie (char Text[])
{
	int m;
	cout<<"Введите количество частей"<<endl;
	cin>>m;
	char **Part=new char*[m];
	for(int i=0;i<m;i++)
	{
		Part[i]=new char [20000];
	}

	FILE *pf;
	char Buffer[1000]={0};
	int n=strlen(Text)/m;
	char s1[25]="Part";char s[10]={0};
	int i=0,l=0;
	do
	{
		int k=0;
		for(int j=i;j<n;j++)
		{
			Buffer[k]=Text[j];
			k++;
			Buffer[k]='\0';
		}
		
		itoa(l,s,10);
		cout<<strcat(strcat(s1,s),".txt");
		
		for(int j=0;s1[j]!='\0';j++)
		{
			Part[l][j]=s1[j];
		    Part[l][j+1]='\0';
    	    cout<<Part[l][j]<<endl;
		}
		pf=fopen(Part[l],"w+");
		fputs(Buffer,pf);
		fclose(pf);
		i=n;
		n+=n+1;l++;
		s1[4]='\0';
		for(int f=6;s1[f]!='\0';f++)
		s1[f]='M';

	}
	while(n<=strlen(Text));
	for(int i=0;i<m;i++)
		cout<<Part[i]<<endl;

	formiruem_text(Part,m,Text);
	cout<<Text<<endl;
}
<head.h>
Код:
void read_file(char **imia,int N);
void formiruem_text(char **imia,int N,char Text[]);
void razbienie (char Text[]);
KostyaS вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
proga Lenka455 Помощь студентам 0 23.12.2010 18:05
proga na c++ newuserc Помощь студентам 4 06.05.2008 11:27