1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

Тема в разделе "Вопросы новичков и не только", создана пользователем Lomka, 22 апр 2011.

  1. Lomka

    Lomka Гость

    Репутация:
    0
    Не могу решить задачи. может кто найдет ошибки в коде
    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::out);

    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 Гость

    Репутация:
    0
    2.
    Код:
    #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 Гость

    Репутация:
    0
    1.
    Код:
    #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 Гость

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

    ierofant Гость

    Репутация:
    0
  6. Lomka

    Lomka Гость

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

    ierofant Гость

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

    Lomka Гость

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

    ierofant Гость

    Репутация:
    0
    Ошибки из-за std:: ??? Очень странно...
     
  10. Lomka

    Lomka Гость

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

    lazybiz Well-Known Member

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

    Lomka Гость

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

    lazybiz Well-Known Member

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

    Lomka Гость

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

    ierofant Гость

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

    Lomka Гость

    Репутация:
    0
    )))))))))
     
Загрузка...

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