Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 17

Чтение из файла строки по началу строки или ее части

15.04.2017, 19:14. Показов 3505. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток! Большая просьба помочь! поступило задание, сделать словарь. Вводишь слов в консоли, а тебе выдает перевод. Пришла мысль выводить строку, в которой есть искомое слово и перевод. Но вот есть проблема с реализаций. Мог бы кто-нибудь помочь хотя бы частичкой кода? Заранее благодарен.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2017, 19:14
Ответы с готовыми решениями:

Чтение части строки из файла
Приветствую. Прошу помощи в реализации кода: имеется текстовый файл, в котором весь текст написан в одну строку и другой файл, где текст...

Replace по Началу и Длине части строки
Можно ли заменить строку по тому, где онa начинается и какой длины. Например - Строка.Replace("Начало строки, продолжительность...

Чтение из файла строк. Сравнение части каждой строки как даты
Здравствуйте, Пишу лабы по ТРПП, ну и соответственно небольшую программку-ОРГАНАЙЗЕР. Подскажите пожалуйста, как реализовать программно...

19
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
15.04.2017, 20:22
Если файл - словарь, то считывай его весь в std::map.
0
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 17
15.04.2017, 20:33  [ТС]
обычный текстовый файл, в котором построчно написаны слова: слово-перевод
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
15.04.2017, 21:20
Цитата Сообщение от Anatolii8 Посмотреть сообщение
хотя бы частичкой кода
Цитата Сообщение от Anatolii8 Посмотреть сообщение
обычный текстовый файл, в котором построчно написаны слова: слово-перевод
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
27
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    ifstream fin("file.txt");
    if (!fin)
    {
        cout << "Error!" << endl;
        cin.get();
        return 0;
    }
 
    map <string, string> m;
    string word;
    string translation;
    while (fin >> word >> translation) // слово и перевод в строке через пробел
    {
        m[word] = translation;
    }
    fin.close();
 
    cin >> word; // слово для поиска перевода в словаре
    map <string, string>::iterator it;
    it = m.find(word);
    if (it != m.end())
        cout << it ->first << ' ' << it ->second << endl;
    else
        cout << "Нет в словаре!" << endl;
1
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 17
15.04.2017, 22:15  [ТС]
Не пойму в чем может быть ошибка
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
27
28
29
30
31
32
33
34
35
36
37
38
#include "stdafx.h"
#include <conio.h>
#include "iostream"
#include "string"
#include <fstream>
 
 
 {SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    ifstream fin("Slovar.txt");
    if (!fin)
    {
        cout << "Error!" << endl;
        cin.get();
        return 0;fuf
    }
 
    map <string, string> m;
    string word;
    string translation;
    while (fin >> word >> translation) // слово и перевод в строке через пробел
  {  {
        m[word] = translation;
    }
    fin.close();
 
    cin >> word; // слово для поиска перевода в словаре
    map <string, string>::iterator it;
    it = m.find(word);
    if (it != m.end())
        cout << it ->first << ' ' << it ->second << endl;
    else
        cout << "Нет в словаре!" << endl;
    return 0;
}
 
 }
Ошибка 1 error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) c:\users\анатолий\desktop\programs\conso leapplication10\consoleapplication10\con soleapplication10.cpp 11 1 ConsoleApplication10
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
15.04.2017, 22:19
Цитата Сообщение от Anatolii8 Посмотреть сообщение
Не пойму в чем может быть ошибка
Наверное, в том, что мой код - это "частичка кода"/
0
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 17
15.04.2017, 22:21  [ТС]
Определенно
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
15.04.2017, 22:26
Цитата Сообщение от Anatolii8 Посмотреть сообщение
Определенно
К гадалке не ходи...
0
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 17
15.04.2017, 22:29  [ТС]
подобные задания не выполнял года 2, однако логику реализации продумал. Вот только проблемы с самой реализацией.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
15.04.2017, 22:44
Лучший ответ Сообщение было отмечено Anatolii8 как решение

Решение

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <map>
#include <string>
#include <fstream>
#include <Windows.h>
#include <iterator>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    ifstream fin("file.txt");
    if (!fin)
    {
        cout << "Error!" << endl;
        cin.get();
        return 0;
    }
 
    map <string, string> m;
    string word;
    string translation;
    while (fin >> word >> translation)
    {
        m[word] = translation;
    }
    fin.close();
 
    cin >> word;
    map <string, string>::iterator it;
    it = m.find(word);
    if (it != m.end())
        cout << it ->first << ' ' << it ->second << endl;
    else
        cout << "Нет в словаре!" << endl;
    
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 17
15.04.2017, 22:57  [ТС]
А используете студию или билдер? 14 студия немного странно реагирует

Добавлено через 6 минут
Хотя разобрался, осталось добавить распознание кирилици
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
15.04.2017, 23:38
Цитата Сообщение от Anatolii8 Посмотреть сообщение
А используете студию или билдер?
Странный вопрос. Причём тут билдер? Для билдера есть свой раздел форума. Студия - наше всё.
Цитата Сообщение от Anatolii8 Посмотреть сообщение
14 студия немного странно реагирует
Странно, что странно реагирует.
Цитата Сообщение от Anatolii8 Посмотреть сообщение
осталось добавить распознание кирилици
В свойстах консоли выбрать шрифт: Lucida Console.
0
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 17
16.04.2017, 16:24  [ТС]
Я немного иначе, вот что вышло

#include <iostream>
#include <map>
#include <string>
#include <fstream>
#include <Windows.h>
#include <iterator>
#include <cstdlib>

using namespace std;

int main()
{
setlocale(LC_ALL, "rus");
//SetConsoleCP(1251);
//SetConsoleOutputCP(1251);

ifstream fin("Slovar.txt");
if (!fin)
{
cout << "Error!" << endl;
cin.get();
return 0;
}

map <string, string> m;
string word;
string translation;
while (fin >> word >> translation)
{
m[word] = translation;
}
fin.close();

cin >> word;
map <string, string>::iterator it;
it = m.find(word);
if (it != m.end())
cout << it ->first << ' ' << it ->second << endl;
else
cout << "Нет в словаре!" << endl;

system("pause");
return 0;
}

однако есть проблема со словосочетаниями, т.е. если в словаре есть слово computer и словосочетание computer science то выдает перевод первого - computer
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
16.04.2017, 16:33
Цитата Сообщение от Anatolii8 Посмотреть сообщение
Я немного иначе
В чём? В этом?
Цитата Сообщение от Anatolii8 Посмотреть сообщение
C++
1
2
3
setlocale(LC_ALL, "rus");
//SetConsoleCP(1251);
//SetConsoleOutputCP(1251);
У тебя так русский ввод работает?
0
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 17
16.04.2017, 16:47  [ТС]
Да, работает
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
16.04.2017, 16:53
Цитата Сообщение от Anatolii8 Посмотреть сообщение
Да, работает
Обычно не работает. Обычно, setlocale(LC_ALL, "rus");, только для вывода работает. Ну, да ладно. А так русский ввод не работает?
Цитата Сообщение от nd2 Посмотреть сообщение
C++
1
2
SetConsoleCP(1251); 
SetConsoleOutputCP(1251);
Цитата Сообщение от nd2 Посмотреть сообщение
В свойстах консоли выбрать шрифт: Lucida Console.
Среда - студия?
1
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 17
16.04.2017, 17:15  [ТС]
Да студия, 2012 Ultimate

Добавлено через 17 минут
однако проблема не в этом, нужно придумать как вычленить из текста все, что ввел, даже словосочетание и потом вывести всю строку
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
16.04.2017, 17:20
Цитата Сообщение от Anatolii8 Посмотреть сообщение
нужно придумать как вычленить из текста все, что ввел, даже словосочетание и потом вывести всю строку
На вопрос не ответил.
0
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 17
16.04.2017, 17:53  [ТС]
на вопрос отвечу точно завтра, к сожалению не дома
0
0 / 0 / 0
Регистрация: 15.04.2017
Сообщений: 17
18.04.2017, 20:50  [ТС]
Таки работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2017, 20:50
Помогаю со студенческими работами здесь

Чтение через fscanf_s части строки с пробелом (и запись этой же строки)
нужно записать в файл строку, содержащую через табуляцию int, char, char, char, float, int. Далее необходимо из такой же строки вывести...

Чтение части строки
есть текстовый файл, например : Ваше имя: Петя Ваш телефон: 123-45-67 он открывается в поле memo целиком, так же в edit1 открывается...

Определить, какое слово - максимальной или минимальной длины - находится ближе к началу строки
Помогите срочно!!! Пожалуйста помогите.... только нужно выполнять с объектами делфи...а не просто паскаль код Дана строка...

Как заменить чтение строки из консоли на чтение текстового файла?
основное задание: найти частоту суффикса (например, &quot;ing&quot;) в текстовом документе. в прикреплённом коде текст вводится прямо в консоль,...

Удаление части строки из файла
Здравствуйте. Возникла проблема. Имеется файл типа Из программы отправляется следующий запрос: $key1 = 'строка 2' $arr...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru