Сравнить Содержимое 2-х Текстовых Файлов

29.10.2013
5
0
#1
Добрый вечер!
Помогите решить задачу, пожалуйста. (с++)

Дано два текстовых файла. Сравнить их содержимое и в новый файл записать либо номер первой строки, в которой они различаются, либо сообщение о том, что файлы идентичны.

Заранее спасибо.
 
R

rrrFer

Гость
#2
ICQ 395-546-218
решу платно.
Не хотите платно - пробуйте решить сами - мы поможем ДОделать.
 
29.10.2013
5
0
#3
Спасибо, уже не надо. 2 часа в обнимку с учебником по с++ и решение готово.
Писала без кода потому, что не знала даже с чего начать. Всё оказалось куда проще, чем думала раньше)

C++:
#include <string.h>
#include <stdio.h>
#include <conio.h>


void main ()
{
int i=0;
FILE * fp1;
FILE * fp;
FILE * fp2;
char s[255];
char q[255];					
int w=1;
fp1=fopen("1.txt","r");
fp=fopen("2.txt","r");
fp2=fopen("3.txt","w");
if ((fp1!=NULL)&& (fp!= NULL)){
while ((!feof(fp1)) || (!feof(fp))) 
{					  
fgets(s,255,fp1); 
fgets(q,255,fp); 
int k=strcmp(s,q);
if (k==0) 
{
printf("okey"); 
w++;
}
else printf("%s,%d","no", w); break;

}}
fprintf(fp2, "%d", w); 
fclose(fp1);
fclose(fp);
fclose(fp2);
getch();
}
Ну он правда записывает в файл только в какой строке файлы различаются, а то, что идентичны -просто выводит надпись. Ну это не особо важно.
 

Whatka

Well-Known Member
09.10.2011
428
4
#4
хорошо,только
C++:
//
printf("okey\n");//просто для эстетики
//...
else{ printf("%s,%d","no", w); break;}//скобки нужны,без скобок выполняется 1 команда после оператора else
//
 
R

rrrFer

Гость
#5
Код:
ifstream ifst1("in1.txt"), ifst2("in2.txt");
bool fl = true;
while (false == ifst1.eof() && false == ifst2.eof())
if (ifst1.get() != ifst2.get()) {
fl = false;
break;
}
if(ifst1.eof() || ifst2.eof()) fl = false;

if (fl == false) 
;// файлы не совпадают
else
;// файлы совпадают