Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: kandrey58reg   (01.10.2009 в 15:10)
Задание:
Написать программу на языке C++ чересстрочного слияния (т.е. первая строка в выходном файле - это первая строка из первого файла, вторая строка в выходном файле - это первая строка из второго файла, третья строка в выходном файле - вторая строка из первого файла и т.д.) двух текстовых файлов с удалением в каждой строке слов после которых стоит любой знак препинания.

Вот попытался сделать первую процедуру, которая сливает информацию из двух файлов один
Подскажите пожалуйста, все ли здесь правильно

class gaz{
public:
void WriteFile()
{
FILE *fi_1,*fi_2,*fo;
 clrscr();
 if ((fi_1=fopen("D:\\file_1.txt""r"))==0){
  cout << "Error open input file!!!" ;
  return;}
 if ((fi_2=fopen("D:\\file_2.txt""r"))==0){
  cout << "Error open input file!!!" ;
  return;}
 if ((fo=fopen("D:\\out.dat","w+b"))==0){
  cout << "Error open output file!!!";
  return;}
  int v=m*2;
slifile = new char*[m+1];
for(int i=0; i<m+1; i++){
slifile[i] = new char[m+1];
}
int i, max, j, l;
cout << "w\n";
for (int i = 1; i <(n1+1); i++) {
  cout<<mass1[i];
  cout<<"\n";}
for (int j = 1; j < (n2+1); j++){
 cout<<mass2[j];
 cout<<"\n";
}
cout << "ssdfrt";
int cnt1 = n1;
int cnt2 = n2;
cout << endl << cnt1 << endl;
cout << cnt2 << endl;
stroka cnt;
max = (cnt1 > cnt2) ? cnt1 : cnt2;
slifile = new char*[cnt1 + cnt2];
cout << "sdfwerewr\n";
itoa(max*2,cnt,10);
strcpy(slifile[0], cnt);
cout << "\n max=" << max << "\n";
if (cnt1 == cnt2) {
cout << "* Fails odinakovoy dlini\n\n";
for (int i = max, j = 1; i > 0; i--, j += 2) {
if (i % 2 == 0) {
else {
 strcpy(slifile[j],mass1[i]);
 strcpy(slifile[j+1],mass2[i]);
}
}
else {
if (cnt1 < cnt2) {
cout << "* fi_1 < fi_2\n\n";
 int i,l,j;
for (i = max,l = 1, j = 1; i > 0; i--, l++, j += 2) {
cout << "d1";
if (l > cnt2) {
strcpy(slifile[j], EMPTY_STR);
cout << "d2";
else {
 strcpy(slifile[j],mass1[i]);
cout<<"d3";
}
cout<<"d4";
strcpy(slifile[j + 1], mass1[i]);
cout<<"";
}
else {
cout << "* fi_1 > fi_2\n\n";
for (int i = max ,l = 1,j = 1; i > 0; i--, l++, j += 2) {
strcpy(slifile[j],mass2[i]);
if (l > cnt1)
strcpy(slifile[j + 1], EMPTY_STR);
else
  strcpy(slifile[j+1],mass1[l]);
}
}
}
fclose(fi_1);
fclose(fi_2);
fclose(fo);
return;
}


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: