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

Считывание строки из ТХТ

01.09.2019, 12:29. Показов 969. Ответов 20
Метки нет (Все метки)

Срочно нужна ваша помощь, уважаемые специалисты.
Есть текстовый файл, в нем 7 строк, требуется считать именно 5-ю строку.


Есть кистяк кода, но не хватает функции считывания именно 5-й строки.
Код приведенный ниже считывает только 1-ю строку файла, а нужно 5-ю.
Помогите пожалуйста дополнить код требуемой функцией, очень прошу.


C++
1
2
3
4
5
6
CStdioFile fp;
if(fp.Open(_T("File.txt"), CFile::modeRead)) {
   CString str;
   fp.ReadString(str);
   fp.Close();
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.09.2019, 12:29
Ответы с готовыми решениями:

Считывание данных из файла.тхт в массив
доброго времени суток. я новичок и поставлена одна задача(скорее игровая). у меня есть текстовый...

Конец строки в .тхт. Реализация в string
Добрый день! столкнулся с проблемой не могу определить конец строки в тхт файле. вот кусок кода,...

Считывание таблицы из тхт
Есть тхт файл, в котором содержатся данные, которые нужно считать и вывести в c#(WindowsForms) Так...

Считывание из тхт файла с последующей сортировкой данных
Помогите пожалуйста, мне надо сделать считывание из файла, одна строка "пто656длвпор523опд". Но...

20
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
01.09.2019, 12:45 2
C++
1
2
3
4
5
6
7
8
9
10
11
#include <fstream>
#include <string>
...
 
int main() {
   std::ifstream fin("input.txt");
   std::string input;
   for(int i = 0; i < 5; i++) getline(fin, input);
   //use 5th str
   ...
}
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 11
01.09.2019, 13:43  [ТС] 3
Спасибо, код работает отлично, НО !
Вместо русскоязычного текста копирует каракули. У меня в текстовом файле русский текст, а после копирования из буфера памяти выходят каракули, проблема с кодировкой или что то еще...
Не поможете, как решить проблему ?
0
Продавец времени
5780 / 3189 / 732
Регистрация: 12.03.2015
Сообщений: 15,121
01.09.2019, 13:48 4
Цитата Сообщение от Viktor120 Посмотреть сообщение
Вместо русскоязычного текста копирует каракули. У меня в текстовом файле русский текст, а после копирования из буфера памяти выходят каракули, проблема с кодировкой или что то еще...
С точки зрения программы в твоём файле находятся байты данных. Программа их считывает в память правильно.
Цитата Сообщение от Viktor120 Посмотреть сообщение
Не поможете, как решить проблему ?
Для начала, покаж файл.
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 11
01.09.2019, 13:56  [ТС] 5
Вот сам код копирования 5-й строки из файла 444.TXT в буфер памяти
Копировать то копирует но когда вставляешь в блокнот или еще куда-нибудь кирилица превращается в каракули.
Сам текстовый файл из которого копируется строка прикрепляю к сообщению

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
void CMy222Dlg::OnButton2() 
{
 
string str_line;
ifstream myfile (_T("444.txt"));
if (myfile.is_open())
{
   for (int i = 0; i < 5; i++) getline (myfile, str_line);
   {
      CString line(str_line.c_str());
      cout << line << '\n';
 
    if(OpenClipboard())
    {
       HGLOBAL hgBuffer;
       char* chBuffer;
       EmptyClipboard();
       hgBuffer= GlobalAlloc(GMEM_DDESHARE, line.GetLength()+1);
       chBuffer= (char*)GlobalLock(hgBuffer);
       strcpy(chBuffer, LPCSTR(line));
       GlobalUnlock(hgBuffer);
       SetClipboardData(CF_TEXT, hgBuffer);
       CloseClipboard();
    }
     
 
    CString fromClipboard;
    if ( OpenClipboard() )
    {
       HANDLE hData = GetClipboardData(CF_TEXT);
       char* chBuffer= (char*)GlobalLock(hData);
       fromClipboard = chBuffer;
       GlobalUnlock(hData);
       CloseClipboard();
    }}
 
   }
   myfile.close();
 }
0
Вложения
Тип файла: txt 444.txt (74 байт, 7 просмотров)
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
01.09.2019, 14:02 6
Вероятно у вас файл в кодировке UTF-8, попробуйте переконвертировать в ANSI
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 11
01.09.2019, 14:09  [ТС] 7
Уже эксперементировал с кодировкой самого ТХТ файла. Сам файл в ANSI. Что интересно, если вставить из буфера текст в диалоговое окно самой программы EditBox, текст отображается правильно. Если же этот текст из буфера вставить в браузер или текстовый файл то сразу возникают крякозябли.
0
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
01.09.2019, 14:12 8
Хмм, попробуйте использовать string или wstring для этого.
0
Продавец времени
5780 / 3189 / 732
Регистрация: 12.03.2015
Сообщений: 15,121
01.09.2019, 14:14 9
Цитата Сообщение от Cortas Посмотреть сообщение
Вероятно у вас файл в кодировке UTF-8, попробуйте переконвертировать в ANSI
Нет, это уже файл в ANSI-1251.
Поставь точку останова на
C++
1
strcpy(chBuffer, LPCSTR(line));
и посмотри, что попадает в буфер chBuffer.
0
Миниатюры
Считывание строки из ТХТ  
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 11
01.09.2019, 14:44  [ТС] 10
Я совсем дуб в программировании. Вот только берусь за азы.
Подскажите на вышеупомянутом коде, что и как. Откорректируйте по возможности. Спасибо.

Добавлено через 29 минут
Чего делать то ?
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 11
02.09.2019, 12:34  [ТС] 11
Вот исходники самого проекта. Программа считывает нужную строку, НО после копирования в буфер памяти и вставки в блокнот или куда-либо еще, вставляются крякозябли. Помогите пожалуйста. Какие-то ппроблемы с кодировкой ???
Сам файл с которого считывается строка находится в папке debug/444.txt


Заранее спасибо.
0
Вложения
Тип файла: rar 111.rar (1.78 Мб, 5 просмотров)
Продавец времени
5780 / 3189 / 732
Регистрация: 12.03.2015
Сообщений: 15,121
02.09.2019, 12:41 12
Цитата Сообщение от Viktor120 Посмотреть сообщение
Заранее спасибо.
Ты меня, чо, в игнор поставил?
Зачем не делаешь так, как я тебе пишу?

Считывание строки из ТХТ
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 11
02.09.2019, 12:43  [ТС] 13
Извините, пожалуйста. В игнор не ставил.
Точку на строку поставил, а дальше то что делать ?
Пользуюсь MFC C++ 6.0
Куда чего нажимать, подскажите пожалуйста.
0
Продавец времени
5780 / 3189 / 732
Регистрация: 12.03.2015
Сообщений: 15,121
02.09.2019, 12:46 14
Цитата Сообщение от Viktor120 Посмотреть сообщение
Точку на строку поставил, а дальше то что делать ?
Я ж написал:
Цитата Сообщение от Verevkin Посмотреть сообщение
посмотри, что попадает в буфер chBuffer.
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 11
02.09.2019, 12:52  [ТС] 15
Если я не ошибаюсь тут конфликт чар и стринг ?
А по сути,что сможете подсказать, что в самом коде изменить ?

Добавлено через 6 минут
А посмотреть как можно ?
Я нажимаю в панели меню Build/Start Debug/Go...

Подскажите пожалуйста пошагово, уж очень нужно, не забавы ради, а для дела
0
Продавец времени
5780 / 3189 / 732
Регистрация: 12.03.2015
Сообщений: 15,121
02.09.2019, 12:54 16
Цитата Сообщение от Viktor120 Посмотреть сообщение
Если я не ошибаюсь тут конфликт чар и стринг ?
Не понял.
Цитата Сообщение от Viktor120 Посмотреть сообщение
А по сути,что сможете подсказать, что в самом коде изменить ?
Нет. Я не хочу твой код читать.

Добавлено через 1 минуту
Цитата Сообщение от Viktor120 Посмотреть сообщение
А посмотреть как можно ?
Я нажимаю в панели меню Build/Start Debug/Go...
Не знаю, у меня нет MFC C++ 6.0 и никогда не было.
Есть С++Builder, DevC++, CodeBlocks.
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 11
02.09.2019, 12:57  [ТС] 17
Из той последовательности шагов, что я указал выше получил вот такое внизу самого MFC


Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\kernel32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\KernelBase.dll', no matching symbolic information found.
Loaded symbols for 'C:\Windows\System32\MFC42D.DLL'
Loaded symbols for 'C:\Windows\System32\MSVCRTD.DLL'
Loaded 'C:\Windows\System32\gdi32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\user32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\lpk.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\usp10.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\msvcrt.dll', no matching symbolic information found.
Loaded symbols for 'C:\Windows\System32\MFCO42D.DLL'
Loaded 'C:\Windows\System32\apphelp.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\imm32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\msctf.dll', no matching symbolic information found.
Loaded 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa85914 9af\comctl32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\advapi32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\sechost.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\rpcrt4.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\uxtheme.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\dwmapi.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\ole32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\cryptbase.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\oleaut32.dll', no matching symbolic information found.
The thread 0xE90 has exited with code 0 (0x0).
The program 'D:\CPP\111\Debug\111.exe' has exited with code 0 (0x0).

Добавлено через 2 минуты
А какой из С++Builder, DevC++, CodeBlocks посоветуете для новичка ? Какой более простой и удобный ?
Может перекомпиляция в другой программе поможет ?
0
Продавец времени
5780 / 3189 / 732
Регистрация: 12.03.2015
Сообщений: 15,121
02.09.2019, 13:02 18
Цитата Сообщение от Viktor120 Посмотреть сообщение
А какой из С++Builder, DevC++, CodeBlocks посоветуете для новичка ? Какой более простой и удобный ?
Более простой - DevC++.
Цитата Сообщение от Viktor120 Посмотреть сообщение
Может перекомпиляция в другой программе поможет ?
Не знаю.
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 11
02.09.2019, 13:55  [ТС] 19
Я немного о...ваю от вас, уважаемые программисты
Есть пустой проект созданный на базе Microsoft VC C++ 6.0
В нем диалоговое окно, а втом окне всего одна кнопка при нажатии которой копируется 5-я строка из текстового файла, который находиться в той же дирректории, что и исполняемый файл
Требуется чтобы строка скопировалась в буфер памяти и ее можно было бы вставить в блокнот, в ворд или куда либо еще... Главное чтобы строчка после вставки не отображалась крякозяблями, так как исходная строка в кирилице.

Ну помогите уже хотть кто-нибудь. Я благодарен за предыдущие ответы, низкий поклон, но ожидаемого результата не получилось.
Надеюсь на вас, уважаемые профессионалы С++.
0
Продавец времени
5780 / 3189 / 732
Регистрация: 12.03.2015
Сообщений: 15,121
02.09.2019, 14:26 20
Цитата Сообщение от Viktor120 Посмотреть сообщение
Я немного о...ваю от вас, уважаемые программисты
А ты чо думал? Придёшь на форум и тебе всё напишут?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2019, 14:26

преобразование АВС.ТХТ в файл 123.ТХТ
Написать программу, преобразующую файл АВС.ТХТ в файл 123.ТХТ. Строки изменяются по следующему...

Вычисление чисел в тхт файле в другой тхт
Здравствуйте! я начал интересоваться паскалем, так вот один мой программный код, который должен...

строки в тхт
здравствуйте, помогите пожалуйста проблема следующая есть файл TXT следующего формата: =москва ...

Вытащить нужные строки из имеющихся тхт
Вечер добрый Имеем папку с тхт файлами Тхт файл вида : ================== { Entry 1 }...


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

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

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