Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
Автор: 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]
Сообщение:
Прикрепить: