потоки

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

  1. FieSta

    FieSta Гость

    Всем привет, посеитившим эту тему. Очень сильно нужна ваша помощь в C++. Нужно написать программку(в ОС LINUX!!!), вроде как неочень сложную, но для меня это сущая бездна, потому как С++ непонимаю вобще..

    Условие
    Разработать консольную программу. Задача должна быть оформлена ввиде
    функции, реализованной в файле myfunc.cpp и вызываемой из функции main,
    которая расположена в файле laba3.cpp.
    Задача:
    Напишите программу, которая производит замену в вводном потоке всех
    символов '\t' на 8-мь символов пробела и выводит результаты в выводной поток.
    Потоки должны быть связаны с файлами на диске. Файл, содержащий
    исходные данные должен открываться в режиме "только чтение".

    Помогите пожалуйста. Действительно очень важно. У меня есть только сутки.
    И просьба, к тем кто возможно откликнется - вставлять комментарии.
     
  2. ierofant

    ierofant Гость

    myfunc.h
    Код (C++):
    #ifndef _MY_FUNC_H_
    #define _MY_FUNC_H_

    void myfunc (const char *_in_file, const char *_out_file);

    #endif //_MY_FUNC_H_
    myfunc.cpp
    Код (C++):
    #include "myfunc.h"
    #include <fstream>

    void myfunc (const char *_in_file, const char *_out_file)
    {
    std::ifstream in (_in_file);
    std::ofstream out (_out_file);

    while (in && out && in.good ())
    {
    char sym = in.get ();
    if (in.good ())
    if (sym != '\t') out.put (sym);
    else for (int i = 0; i < 8; ++i) out.put (' ');
    }
    }
    laba3.cpp
    Код (C++):
    #include "myfunc.h"

    int main ()
    {
    myfunc ("file1", "file2");
    return 0;
    }
    Надеюсь скомпилить сам сможешь.
     
  3. FieSta

    FieSta Гость

    смогу) завтра проверю в институте, отпишусь...
     
  4. FieSta

    FieSta Гость

    Большое спасибо за программу, она рабочая, но есть проблема, как привести эту программу в действие? Я не шарю просто=) при обычном выполнении нечего непроисходит.. Я так поняла нужно создать 2 файла в одном записать какой-то текст с табуляциями, а во второй вывести результат с пробелами, но как это совместить с программой? обьясните пожалуйста на примере...потому как у меня нечего невыходит, я в этом чайник :(
     
  5. ierofant

    ierofant Гость

    Плохое оправдание :( , надо переставать быть чайником. Эти файлы должны называться file1 и file2. В первом текст с табуляциями, во втором получишь результат, после выполнения программы. Файлы должны находится в одной папке с программой. Если нужны другие имена файлов, просто поменяй их названия в laba3.cpp.
     
  6. FieSta

    FieSta Гость

    А полный путь к файлу указывать ненадо?
    та я бы с радостью, но для меня это сложный язык, точнее сложный для моего понимания..Хотя возможно мне его не так подали.. Паскаль и Delphi я лучше освоила
     
  7. ierofant

    ierofant Гость

    Если он в одной папке с программой, то нет. Если в другом месте, то нужно. Вообще по-хорошему надо было сделать, чтобы имена фалов вводились с клавиатуры, но я не стал усложнять пример.

    Добавлено: Вот так, например:
    Код (C++):
    #include "myfunc.h"
    #include <string>

    int main ()
    {
    std::string filename1, filename2;
    std::cout << "Введите имя файла с исходными данными: ", std::cin >> filename1;
    std::cout << "Введите имя выходного файла: ", std::cin >> filename2;

    myfunc (filename1.c_str (), filename2.c_str ());
    return 0;
    }
     
  8. FieSta

    FieSta Гость

    мм, завтра попробую, если будут вопросы, то я могу к вам в аську обратиться, что бы тут не флудить?))
     
  9. ierofant

    ierofant Гость

    Раз уж я тут её оставил, значит можно :(
     
Загрузка...
Похожие Темы - потоки
  1. Mady
    Ответов:
    3
    Просмотров:
    1.475
  2. 203
    Ответов:
    4
    Просмотров:
    1.751
  3. Senset
    Ответов:
    0
    Просмотров:
    2.330

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