Задачи на файлы С++

Тема в разделе "C/C++/C#", создана пользователем Lomka, 22 апр 2011.

  1. Lomka

    Lomka Гость

    Не могу решить задачи. может кто найдет ошибки в коде
    1. Программным путем создать файл следующего вида:
    1
    1 2
    1 2 3
    1 2 3 4

    1 2 3 4 5 6 7 8 9
    Доработайте программу так, чтобы количество строк запрашивалось у пользователя с клавиатуры.

    все что я смогла сделать:

    #include <fstream.h>
    #include <conio.h>
    #include <iomanip.h>

    void main()

    {clrscr();
    fstream fo;
    fo.open("fo.txt",ios::eek:ut);

    int i,x;int k=1;

    cout<<"vvedi:"<<"\n"<<"x=";
    cin>>x;

    for (i=1;i<x;i++)
    {for (i=1;i<k;i++)
    fo<<i;}
    k++;
    fo.close();
    getch();
    }

    Создается файл, но ничего не записывается туда.

    Вот еще одна задача:
    2. Даны два текстовых файла. Вывести их содержимое на экран. Сравнить файлы на совпадение и вывести результат проверки.

    Код:
    #include <ctype.h>
    #include <fstream.h>
    #include <iostream.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>

    void main()
    {clrscr();
    char s1,s2;int result;
    ifstream F ("d:\\1.txt");
    if (F.fail())
    { cout <<"Oshibka \n";}
    cout<<"text 1ogo faila:";
    while (F>>s1)
    cout <<s1;

    ifstream F1 ("d:\\2.txt");
    if (F1.fail())
    { cout <<"Oshibka \n";}
    cout<<"text 2ogo faila:";
    while (F1>>s2)
    cout <<s2;

    result=strcmp(int const char *s1,int const char *s2);
    if (result==0)
    cout<<"s1=s2"<<endl;
    else if (result>0)
    cout<<"s1<s2"<<endl;
    else cout<<"s1>s2"<<endl;
    return 0;

    F.close();
    F1.close();
    getch();
    }
    эта задача не запускается...
     
  2. ierofant

    ierofant Гость

    2.
    Код (C++):
    #include <iostream>
    #include <algorithm>
    #include <fstream>
    #include <iterator>

    typedef std::istreambuf_iterator<char> Itr;

    int main ()
    {
    std::ifstream in1 ("file1");
    if (in1)
    {
    std::cout << "Первый файл: " << std::endl;
    std::for_each (Itr (in1), Itr (), std::bind1st (std::mem_fun (&std::ofstream::put), &std::cout));
    std::cout << std::endl << std::endl;
    }
    else std::cout << "Ошибка при отрытии первого файла!" << std::endl;

    std::ifstream in2 ("file2");
    if (in2)
    {
    std::cout << "Второй файл: " << std::endl;
    std::for_each (Itr (in2), Itr (), std::bind1st (std::mem_fun (&std::ofstream::put), &std::cout));
    std::cout << std::endl << std::endl;
    }
    else std::cout << "Ошибка при отрытии второго файла!" << std::endl;

    if (in1 && in2)
    {
    in1.seekg (0);
    in2.seekg (0);
    if (std::equal (Itr (in1), Itr (), Itr (in2))) std::cout << "Содержимое файлов совпадает" << std::endl;
    else std::cout << "Содержание файлов различно" << std::endl;
    }
    return 0;
    }
     
  3. ierofant

    ierofant Гость

    1.
    Код (C++):
    #include <iostream>
    #include <algorithm>
    #include <fstream>

    int main ()
    {
    std::ofstream in ("file1", std::ios::out | std::ios::trunc);
    if (in)
    {
    unsigned n_rows;
    std::cout << "Введте кол-во строк: ", std::cin >> n_rows;  
    for (unsigned i = 1; i <= n_rows; ++i)
    {
    for (unsigned ii = 1; ii <= i; ++ii) in << ii << " ";
    in << std::endl;
    }
    }
    else std::cout << "Ошибка при отрытии файла!" << std::endl;   
    return 0;
    }
     
  4. Lomka

    Lomka Гость

    спасибо! только тут так все сложно....я никак не разберусь....вот например это что #include <algorithm> - я такого вообще не знаю)))
     
  5. ierofant

    ierofant Гость

  6. Lomka

    Lomka Гость

    спасибо :)
    но мне надо эти задачи попроще решить, нельзя использовать #include <algorithm>, #include <iterator>(т.к. мы их не изучали)
    но все равно большое спасибо за помощь))))
     
  7. ierofant

    ierofant Гость

    А, кстати, в задаче 1 можно убрать #include <algorithm> ! У меня он туда случайно затесался, так что там всё что вы проходили.
     
  8. Lomka

    Lomka Гость

    да, спасибо! я там убрала эту библиотеку и все эти std::, а то из-за них ошибки)))
     
  9. ierofant

    ierofant Гость

    Ошибки из-за std:: ??? Очень странно...
     
  10. Lomka

    Lomka Гость

    ну да. они там вообще для чего?
    сижу, который день разбираю код)))))
     
  11. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Если ты убрала "std::", то скорее всего поставила ".h" в конце имен включаемых файлов. Ошибки появились после того, как ты стала редактировать код.
     
  12. Lomka

    Lomka Гость

    нет, ошибки были сразу. смысл мне трогать код если бы он работал)))
     
  13. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Тут таких гостей хватает, которым дают рабочий код а они его исправляют и говорят что он не работает.
    Напиши какие были ошибки.
     
  14. Lomka

    Lomka Гость

    да я это все понимаю.там 11 ошибок выходит,может просто это потому что код написан на Visual Studio, а у меня Borland C++ 3.1.
    В общем не суть! все равно первую задачу я исправила и все работает, а вот вторая - нет((
     
  15. ierofant

    ierofant Гость

    Ну понятно, Borland C++ 3.1 это же динозавр, там много чего не соответствует нынешним реалиям ;)
     
  16. Lomka

    Lomka Гость

    )))))))))
     
Загрузка...

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