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

Тема в разделе "C/C++/C#", создана пользователем TankOo, 29 окт 2013.

  1. TankOo

    TankOo Member

    Регистрация:
    29 окт 2013
    Сообщения:
    5
    Симпатии:
    0
    Добрый вечер!
    Помогите решить задачу, пожалуйста. (с++)

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

    Заранее спасибо.
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    ICQ 395-546-218
    решу платно.
    Не хотите платно - пробуйте решить сами - мы поможем ДОделать.
     
  3. TankOo

    TankOo Member

    Регистрация:
    29 окт 2013
    Сообщения:
    5
    Симпатии:
    0
    Спасибо, уже не надо. 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();
    }
    Ну он правда записывает в файл только в какой строке файлы различаются, а то, что идентичны -просто выводит надпись. Ну это не особо важно.
     
  4. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    хорошо,только
    Код (C++):
    //
    printf("okey\n");//просто для эстетики
    //...
    else{ printf("%s,%d","no", w); break;}//скобки нужны,без скобок выполняется 1 команда после оператора else
    //
     
  5. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Код (Text):
    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
    ;// файлы совпадают
     
  6. TankOo

    TankOo Member

    Регистрация:
    29 окт 2013
    Сообщения:
    5
    Симпатии:
    0
    Да, спасибо. С синтаксисом всегда всё было плохо)
     
Загрузка...

Поделиться этой страницей