Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
asya88
0 / 0 / 0
Регистрация: 02.04.2017
Сообщений: 56
1

Найти заданное слово в файле

27.04.2017, 00:11. Просмотров 926. Ответов 10
Метки нет (Все метки)

Требуется найти нужное слово в файле,причем ввод слова с клавиатуры и оно является типом string.заметила,что с++ не воспринимает функцию fopen!пришлось заменить на errno_t fopen_s, не понимаю,как она работает.помогите пожалуйста.Спасибо
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2017, 00:11
Ответы с готовыми решениями:

В txt-файле найти заданное слово или фразу и поменять её на другое слово или фразу
Привет народ! Помогите чем сможете. Короче нужна программа, которая в txt-файле...

Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово.
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово.

Найти в файле слово по заданному началу, вывести слово и его позицию
Найти в файле слово по заданному началу, вывести слово и его позицию

Методами последовательного и бинарного поиска найти заданное слово
помогите решить задачу вот условие: Есть массив m слов длиной 5. Упорядочить...

Распечатать строку, которая содержит заданное слово заданное колличество раз
Доброго времени суток. Суть проблемы такова: в написанной программе, вместо...

10
nd2
2838 / 2405 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
27.04.2017, 00:23 2
Цитата Сообщение от asya88 Посмотреть сообщение
с++ не воспринимает функцию fopen
Это функция не С++, а Си. Как не воспринимает? Пишет, что небезопасная функция?
0
Даценд
Модератор
Эксперт .NET
4279 / 4013 / 2658
Регистрация: 20.04.2015
Сообщений: 7,298
27.04.2017, 00:39 3
asya88,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <fstream>
 
bool find_word(const std::string filename, const std::string word)
{
    std::ifstream file(filename);
    std::string tmp;
    while(file >> tmp)
    {
        if(word==tmp)
            return true;
    }
    return false;
}
 
int main()
{
    std::string word;
    std::cout << "Enter word:";
    std::cin >> word;
    if(find_word("c://file.txt", word))
        std::cout << "Yes";
    else
        std::cout << "No";
    return 0;
}
0
asya88
0 / 0 / 0
Регистрация: 02.04.2017
Сообщений: 56
27.04.2017, 09:00  [ТС] 4
Он пишет,что fopen надо заменить на fopen_s,а fopen_s работает с добавлением errno_t и с 3 параметрами
0
nd2
2838 / 2405 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
27.04.2017, 09:20 5
Цитата Сообщение от asya88 Посмотреть сообщение
Он пишет,что fopen надо заменить на fopen_s
Выше всех инклудов, прописать: #define _CRT_SECURE_NO_WARNINGS
Или, ниже всех инклудов, прописать: #pragma warning(disable : 4996)
0
asya88
0 / 0 / 0
Регистрация: 02.04.2017
Сообщений: 56
27.04.2017, 17:32  [ТС] 6
извините,а что значит while(file >> tmp) ?
0
moskitos80
69 / 69 / 33
Регистрация: 04.10.2011
Сообщений: 245
Завершенные тесты: 1
27.04.2017, 17:36 7
Цитата Сообщение от asya88 Посмотреть сообщение
извините,а что значит while(file >> tmp) ?
Это значит считать значение из потока.
0
Даценд
Модератор
Эксперт .NET
4279 / 4013 / 2658
Регистрация: 20.04.2015
Сообщений: 7,298
27.04.2017, 17:37 8
asya88,
Это значит, что цикл while будет крутиться, пока успешно выполняется чтение из файлового потока file в переменную tmp.
Т.е. пока не закончатся слова в файле.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8105 / 4956 / 1436
Регистрация: 29.11.2010
Сообщений: 13,451
27.04.2017, 17:41 9
Лучший ответ Сообщение было отмечено asya88 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <fstream>
#include <iostream>
#include <iterator>
#include <string>
 
int main()
{
    std::ifstream ifs("input.txt");
    std::string str;
    std::cin >> str;
    using input_it = std::istream_iterator<std::string>;
    std::cout << std::boolalpha << (std::find(input_it(ifs), input_it(), str) != input_it());
}
0
asya88
0 / 0 / 0
Регистрация: 02.04.2017
Сообщений: 56
27.04.2017, 18:34  [ТС] 10
не распознает такой знак,а также не читает << после cin
у меня visual studio.

Добавлено через 4 минуты
C2678 бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует)
E0349 отсутствует оператор ">>", соответствующий этим операндам Проект3
0
Даценд
Модератор
Эксперт .NET
4279 / 4013 / 2658
Регистрация: 20.04.2015
Сообщений: 7,298
27.04.2017, 19:17 11
asya88,
добавьте
C++
1
#include <string>
0
27.04.2017, 19:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2017, 19:17

Распечатать строку, которая содержит заданное слово заданное количество раз
Доброго времени суток! Помогите написать код по заданию! Само задание:...

Найти в тексте заданное слово и добавить новое перед ним
У меня есть прога. Суть ее в том что она из текстового файла читает информацию...

Ввести строку из нескольких слов и найти в ней заданное слово
Ввести строку из нескольких слов и найти в ней заданное слово( введённое с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru