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

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

15.04.2017, 19:14. Показов 3534. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru