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

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

31.05.2015, 02:41. Показов 1237. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru