Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] как добавить в код чтобы он перед вопросом, покозал что написано в example.txt 
V
    Опции темы
toader
Дата 17.6.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.6.2009

Репутация: нет
Всего: нет



Код


#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
    string line;
    std::ifstream finp("./src/example.txt");
    std::ofstream fout("./src/vasea-out.txt");
    if (!finp || !fout)
    {           std::cout << "Error opening file" << std::endl;
        return 1;
    }
    std::string word;
    string m,n;
    cout << "kakoe slovo meneati? :" <<endl;
    cin >> m;
    cout << "na kakoe slovo pomeneati? :" <<endl;
    cin >> n;
    while (!finp.eof())
    {
        finp >> word;

        if (word == m)
            fout << n << " ";
        else
            fout << word << " ";
    }
}


PM MAIL   Вверх
azesmcar
Дата 17.6.2009, 17:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 9
Всего: 211



Код

copy(istream_iterator<char>(finp >> noskipws), istream_iterator<char>(), ostream_iterator<char>(cout));


и
Код

#include <iterator>
#include <algorithm>

PM   Вверх
toader
Дата 17.6.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.6.2009

Репутация: нет
Всего: нет



Код

              // так меняет слово.. а если убрать // то не меняет а просто показевает что написано и создоёт пустой файл vasea-out.txt
  //  copy(istream_iterator<char>(finp >> noskipws), istream_iterator<char>(), ostream_iterator<char>(cout));



Код


#include <iostream>
#include <fstream>
#include <string>
#include <iterator>
#include <algorithm>
using namespace std;
int main()
{
    string line;
    std::ifstream finp("./src/example.txt");
    std::ofstream fout("./src/vasea-out.txt");
    if (!finp || !fout)
    {           std::cout << "Error opening file" << std::endl;
        return 1;
    }
              // так меняет слово.. а если убрать // то не меняет а просто создоёт файл
  //  copy(istream_iterator<char>(finp >> noskipws), istream_iterator<char>(), ostream_iterator<char>(cout));
    std::string word;
    string m,n;
    cout << endl;
    cout << "Ce cuvint doritzi sa modificatzi? :" <<endl;
    cin >> m;
    cout << "Cu ce cuvint doritzi sal modificatzi? :" <<endl;
    cin >> n;
    while (!finp.eof())
    {
        finp >> word;

        if (word == m)
            fout << n << " ";
        else
            fout << word << " ";
    }
}



Это сообщение отредактировал(а) toader - 17.6.2009, 17:52
PM MAIL   Вверх
azesmcar
Дата 18.6.2009, 09:28 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 9
Всего: 211



toader

Ну, файл уже прочитан один раз, следовательно его надо возвратить в первозданное состояние.
вот так, но это не самый оптимальный вариант, хотя мне кажется это не так важно в вашем случае.
Код

#include <iostream>
#include <fstream>
#include <string>
#include <iterator>
#include <algorithm>
using namespace std;
int main()
{
    string line;
    std::ifstream finp("./src/example.txt");
    std::ofstream fout("./src/vasea-out.txt");
    if (!finp || !fout)
    {           std::cout << "Error opening file" << std::endl;
    return 1;
    }
    // так меняет слово.. а если убрать // то не меняет а просто создоёт файл
    copy(istream_iterator<char>(finp >> noskipws), istream_iterator<char>(), ostream_iterator<char>(cout));
    finp.clear();
    finp.seekg(0);
    std::string word;
    string m,n;
    cout << endl;
    cout << "Ce cuvint doritzi sa modificatzi? :" <<endl;
    cin >> m;
    cout << "Cu ce cuvint doritzi sal modificatzi? :" <<endl;
    cin >> n;
    while (!finp.eof())
    {
        finp >> word;
        if (word == m)
            fout << n << " ";
        else
            fout << word << " ";
    }
}



Это сообщение отредактировал(а) azesmcar - 18.6.2009, 09:29
PM   Вверх
toader
Дата 18.6.2009, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.6.2009

Репутация: нет
Всего: нет



попробовал открыть прочетать закрыть потом опять открыть изменить одно слово и закрыть ефект тотже((( помогите пожалуйста

Код

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main ()
{
  string line;
  ofstream myfile2 ("./src/example.txt");
  ifstream myfile ("./src/example.txt");
  if (myfile.is_open())
    {
      while (! myfile.is_open() )
        {
          getline (myfile,line);
          cout << line << endl;
        }
      myfile.close();
    }
  std::string word;
  string m,n;
  cout << endl;
  cout << "Ce cuvint doritzi sa modificatzi? :" <<endl;
  cin >> m;
  cout << "Cu ce cuvint doritzi sal modificatzi? :" <<endl;
  cin >> n;
  while (! myfile2.is_open() )
    {
      myfile >> word;
    if (word == m)
      myfile2 << n << " ";
    else
      myfile2 << word << " ";
    }
  myfile2.close();
}



Добавлено через 3 минуты и 2 секунды
Цитата(azesmcar @ 18.6.2009,  09:28)
toader

Ну, файл уже прочитан один раз, следовательно его надо возвратить в первозданное состояние.
вот так, но это не самый оптимальный вариант, хотя мне кажется это не так важно в вашем случае.
Код

...

нет( не меняет слово только показевает что написано.. уже 8 вариантов испробовал ефект тотже или показевает что написано или меняет(((
PM MAIL   Вверх
azesmcar
Дата 18.6.2009, 09:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 9
Всего: 211



toader
Потому что дальше ошибки, и еще noskipws убрать надо из потока.
Код

#include <iostream>
#include <fstream>
#include <string>
#include <iterator>
#include <algorithm>

using namespace std;

int main()
{
    string line;

    ifstream finp("./src/example.txt");
    ofstream fout("./src/vasea-out.txt");
    
    if (!finp || !fout)
    {
        std::cout << "Error opening file" << std::endl;
        return 1;
    }

    copy(istream_iterator<char>(finp >> noskipws), istream_iterator<char>(), ostream_iterator<char>(cout));

    finp.clear();
    finp.seekg(0);
    finp.setf(ios_base::skipws);
    std::string word;
    string m,n;
    cout << endl;
    cout << "Ce cuvint doritzi sa modificatzi? :" <<endl;
    cin >> m;
    cout << "Cu ce cuvint doritzi sal modificatzi? :" <<endl;
    cin >> n;
    while (!finp.eof() && !(finp >> word).fail())
    {
        if (word == m)
            fout << n << " ";
        else
            fout << word << " ";
    }
}


PM   Вверх
toader
Дата 18.6.2009, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.6.2009

Репутация: нет
Всего: нет



zesmcar, я поставил твой код.. он в вася аут пишет 20 метров а при открытие зависает вся ситема и кансоли и еклипса.. фсё(((

Добавлено через 29 секунд
я это написал про первый код что выше 
PM MAIL   Вверх
azesmcar
Дата 18.6.2009, 09:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 9
Всего: 211



Цитата(toader @  18.6.2009,  09:39 Найти цитируемый пост)
zesmcar, я поставил твой код.. он в вася аут пишет 20 метров а при открытие зависает вся ситема и кансоли и еклипса.. фсё((( 

 smile у тебя там бесконечный цикл в конце. На fail() не проверяется.
добавил проверку постом выше.

Это сообщение отредактировал(а) azesmcar - 18.6.2009, 09:41
PM   Вверх
toader
Дата 18.6.2009, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.6.2009

Репутация: нет
Всего: нет



оо этот второй работает.. болишое спасибо))) сечас по копаюси.. интерестно вчём же проблема была
PM MAIL   Вверх
azesmcar
Дата 18.6.2009, 09:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 9
Всего: 211



Цитата(toader @  18.6.2009,  09:42 Найти цитируемый пост)
интерестно вчём же проблема была 


Цитата(azesmcar @  18.6.2009,  09:41 Найти цитируемый пост)
у тебя там бесконечный цикл в конце. На fail() не проверяется.


Цитата(azesmcar @  18.6.2009,  09:39 Найти цитируемый пост)
и еще noskipws убрать надо из потока.


PM   Вверх
toader
Дата 18.6.2009, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.6.2009

Репутация: нет
Всего: нет



а вот опять)) вот попробовал добавить 

Код

        else if (word != m)
         cout << "такого слова нет!!!!   " << m << endl;


а он в резулитате даже если ести слово пишет это.. ив васеа-оут пишет толико изменёное слово((
PM MAIL   Вверх
azesmcar
Дата 18.6.2009, 10:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 9
Всего: 211



toader
это что, так что ли? smile 
Код

 if (word == m)
            fout << n << " ";
       else if (word != m)
         cout << "такого слова нет!!!!   " << m << endl;

1. Зачем тут else if? Возможны другие варианты с else?
2. Разумеется он так и будет себя вести. Подумай, выполни все команды в уме, или хотя бы в дебагере посмотри.
Читает первое слово - допустим это то что нам нужно, заменяем. На следующем шаге это не то слово, и ты выведешь "такого слова нет!!!!" хотя слово ты уже заменил.
PM   Вверх
toader
Дата 18.6.2009, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.6.2009

Репутация: нет
Всего: нет



попробовал наоборот сначало проверить потом изменить тоже не работает((

Код

    if (word != m)
           cout << "Asha cuvint nu este in propozitzia data!!!!!  " << m << endl;
    fout << word << " ";
        else
            fout << n << " ";



я это вижу так


если Слово = М 
 меняем слово
если Слово нет= М
 пишем Такого слова нет!!
 Слово заменяем на тоже слово

Это сообщение отредактировал(а) toader - 18.6.2009, 10:42
PM MAIL   Вверх
azesmcar
Дата 18.6.2009, 10:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 9
Всего: 211



Цитата(toader @  18.6.2009,  10:38 Найти цитируемый пост)
попробовал наоборот сначало проверить потом изменить тоже не работает((

а какая разница? это уже не С++, тут просто надо подумать. Все таки почитай книги. Так ты ничему не научишся.

Заведи bool переменную и инициализируй ее false. Как только найдешь - смени значение на true. В конце проверь, найдено слово или нет.

Добавлено через 2 минуты и 30 секунд
скорее всего опять будут проблемы. вот код
Код

#include <iostream>
#include <fstream>
#include <string>
#include <iterator>
#include <algorithm>
using namespace std;
int main()
{
    string line;
    ifstream finp("./src/example.txt");
    ofstream fout("./src/vasea-out.txt");

    if (!finp || !fout)
    {
        std::cout << "Error opening file" << std::endl;
        return 1;
    }
    copy(istream_iterator<char>(finp >> noskipws), istream_iterator<char>(), ostream_iterator<char>(cout));
    finp.clear();
    finp.seekg(0);
    finp.setf(ios_base::skipws);
    std::string word;
    string m,n;
    cout << endl;
    cout << "Ce cuvint doritzi sa modificatzi? :" <<endl;
    cin >> m;
    cout << "Cu ce cuvint doritzi sal modificatzi? :" <<endl;
    cin >> n;
    bool found = false;
    while (!finp.eof() && !(finp >> word).fail())
    {
        if (word == m)
        {
            fout << n << " ";
            found = true;
        } else
            fout << word << " ";
    }
    if (!found)
        cout << "No such word" << endl;
}

PM   Вверх
zim22
Дата 18.6.2009, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 16
Всего: 69



Цитата(azesmcar @  18.6.2009,  10:41 Найти цитируемый пост)
а какая разница? это уже не С++, тут просто надо подумать. Все таки почитай книги. Так ты ничему не научишся.

помню я со списками связными разобраться наугад решил.

current = head->next - не работает...
поменяю ка я его на head = head->next
хм. всё-равно не работает.
может быть написать head = current->next->next?

всё закончилось тем, что мне надоело тыкать пальцем в небо и я взял листик, ручку, включил мозги и задачка решилась smile



--------------------
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0684 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.