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

Запись в файл. Функция ввода русских слов

31.05.2015, 02:41. Показов 1261. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Код дал преподаватель, не реализуется функция Readline, выдает две ошибки:

Ошибка 1 error LNK2005: "char * __cdecl ReadLine(char *,int)" (?ReadLine@@YAPADPADH@Z) уже определен в MyCrt.obj C:\Users\Suok\Documents\Visual Studio 2013\Projects\Tellbook\Tellbook\Tellbook .obj Tellbook
Ошибка 2 error LNK1169: обнаружен многократно определенный символ - один или более C:\Users\Suok\Documents\Visual Studio 2013\Projects\Tellbook\Debug\Tellbook.ex e Tellbook

не могу понять в чем проблема, к преподавателю уже подойти не могу, хотелось чтобы помогли разобраться или сказали чем можно заменить Readline.


C++ (Qt)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include "stdafx.h"
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <Windows.h>
#include "Menu.h"
#include "Table.h"
#include "MyCrt.h"
#include <fstream>
#include <iomanip>
#include <string>
#include <cstdlib>
#include <ctype.h>
 
using namespace std;
 
bool FileExists ( char *FileName)
    // Возвращает true, если файл FileName существует
{
    ifstream File ( FileName ); // Открываем файл для чтения 
    bool Fl = (bool)File; // Фиксируем результат открытия файла в переменной Fl
    File.close(); // Закрываем файл
    return Fl; // Возвращаем значение true, если файл существует
}
 
struct t_Person // Тип данных для "персоны"
{
    char Fam[20]; // Фамилия
    char Name[20]; // Имя
    int Year; // Год рождения
};
 
char *ReadLine(char *S, int len)
    // функция для корректного ввода с клавиатуры русских букв
{
    cin.getline(S, len);
    OemToAnsi(S, S);
    return S;
}
void ReadConPerson(t_Person &P)
    // Ввод данных персоны с клавиатуры
{
    cin.sync();
    int W = 17; // Ширина поля вывода для подсказки
    cout << setw(W) << "Фамилия: "; // Выводим подсказку для фамилии
    ReadLine(P.Fam, sizeof(P.Fam)); // Вводим фамилию
    cout << setw(W) << "Имя: "; // Выводим подсказку для имени
    ReadLine(P.Name, sizeof(P.Name)); // Вводим фамилию
    cout << setw(W) << "Год рождения: "; // Выводим подсказку для года рождения
    cin >> P.Year; // Вводим год рождения
}
 
void WriteConPerson(t_Person P)
    // Вывод данных персоны на экран
{
    int W = 17; // Ширина поля вывода для подсказки
    cout << setw(W) << "Фамилия: " << P.Fam << endl; // Выводим фамилию
    cout << setw(W) << "Имя: " << P.Name << endl; // Выводим имя
    cout << setw(W) << "Год рождения: " << P.Year << endl; // Выводим год рождения
}
 
void WriteFile(char FN[])
    // Чтение данных с клавиатуры и их запись в файл с именем FN
{
    t_Person P; // Переменная для персоны
    fstream File(FN, ios::out | ios::binary | ios::app); // Открываем файл для добавления данных в двоичном режиме
    do 
    // Цикл до тех пор, пока мы не откажемся от ввода данных
    {
        system("cls"); // Чистим экран
        ReadConPerson(P); // Вводим данные с клавиатуры в переменную P
        File.write((char *) &P, sizeof(P)); // Записываем данные из переменной Р в файл
    }
    while (MessageBox(NULL, L"Продолжим ввод?", L"Запрос", MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON1) != 7);
    File.close(); // Закрываем файл
}
 
void ReadFile(char FN[])
    // Чтение данных из файла с именем FN и вывод их на экран
{
    t_Person P; // Переменная для персоны
    fstream File(FN, ios::in | ios::binary); // Открываем файл для чтения данных в двоичном режиме
    if (!File) // Если файл не удалось открыть, выходим из функции
        return;
    do
    // Цикл до тех пор, пока мы не откажемся от вывода данных
    {
        int Count = 1; // Счетчик выведенных персон
        File.clear(); // Очищаем статус состояния потока ввода
        File.seekg(0); // Устанавливаем указатель чтения файла в начало файла
        do
        // Цикл до тех пор, пока не закончился файл или мы не откажемся от вывода данных
        {
            File.read((char *) &P, sizeof(P)); // Читаем из файла в переменную Р данные об очередной персоне
            if (!File.eof()) // Если не достигнут конец файла, то выводим на экран данные о персоне
            {
                system("cls"); // Очищаем экран
                cout << "Персона " << Count++ << ":\n"; // Выводим на экран подсказку с номером Count персоны и увеличиваем
                                                          // значение Count на единицу
                cout << "----------\n"; // Подчеркиваем подсказку
                WriteConPerson(P); // Выводим на экран значение переменной Р с данными о персоне
            }
        }
        while (!File.eof() && 
            (MessageBox(NULL, L"Продолжим?", L"Запрос", MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON1) != 7));
    }
    while (MessageBox(NULL, L"Вывод закончен.\nНачнем сначала?", L"Запрос", MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON2) != 7);
    File.close(); // Закрываем файл
}
 
int _tmain(int argc, _TCHAR* argv[]) 
{
    setlocale (0, ""); // Устанавливаем руссифицированную кодовую страницу для консоли
    char FN[] = "Persons.dat"; // Имя файла для данных персон
    do
    // Цикл до тех пор, пока мы не откажемся от продолжения работы
    {
        bool Ok = FileExists(FN); // В переменной Ок фиксируем наличие (отсутствие) файла с именем FN
        if ( (!Ok) || (Ok &&
            (MessageBox(NULL, L"Будем добавлять данные в файл?", L"Запрос", MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON2) == 6)))
          // Если файл отсутствует или он имеется и мы хотим добавить в него данные, то вводим данные с клавиатуры и записываем их в файл
            WriteFile(FN); // Чтение данных с клавиатуры и их запись в файл с именем FN
 
        if ( MessageBox(NULL, L"Будем читать данные из файла?", L"Запрос", MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_DEFBUTTON1) == 6)
          // Если мы хотим прочитать данные из файла, то читаем их из файла и выводим на экран
            ReadFile(FN); // Чтение данных из файла с именем FN и вывод их на экран
    }
    while (MessageBox(NULL, L"Закончить работу?", L"Запрос", MB_YESNO | MB_ICONSTOP | MB_TOPMOST | MB_DEFBUTTON2) != 6);
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.05.2015, 02:41
Ответы с готовыми решениями:

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

Запись (чтение) русских символов в(с) файл(а)
Вот мой кусок кода: string name; name = Console.ReadLine(); FileStream fin = new FileStream(&quot;client.txt&quot;, FileMode.Append); ...

Запись русских букв в файл - windows
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace std; int main() { ifstream...

2
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
31.05.2015, 03:49
Да назовите эту ReadLine по-другому - и всё тут.
0
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 10
01.06.2015, 02:24  [ТС]
все заработало, спасибо, затупил)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.06.2015, 02:24
Помогаю со студенческими работами здесь

Записать в файл только те строки, которые начинаются с русских слов.
Дан файл, состоящий из строк, к-ые могут начинаться либо с русских, либо с английских слов. Записать в другой файл только те строки, к-е...

В лог-файл вместо русских слов записывается набор символов
* Я не знал куда кинуть этот вопрос, нужной темы не нашел :( Смысл в том что батником пингую список серверов и результат на русском...

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

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

Поиск определенных слов в ТХТ файле, и запись этих слов (если найдено) в отдельный файл
К примеру, есть файл &quot;Text.txt&quot;. В нем есть 1000 строк. Если какая-то строка = привет, то echo Привет &gt;&gt; Output.txt Как это...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru