powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Определение конца строки в *.txt при использовании fstream, при присвоении данных строки в
4 сообщений из 4, страница 1 из 1
Определение конца строки в *.txt при использовании fstream, при присвоении данных строки в
    #32879018
Ost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ost
Гость
Определение конца строки в *.txt при использовании fstream, при присвоении данных строки в переменную .

Имеется текстовый файл - справочник, где в каждой строке находится одно понятие, которое может состоять из одного или нескольких слов. При использовании fstream сначала создаём объект и открываем нужный файл-справочник:

fstream dict;
dict001.open("file_name",ios::in|ios::nocreate);
Затем мы в цикле считываем по одной строке из этого файла:
CString CStroka="<Строка, в которой будет искаться понятие из правочника>";
for( ; ! dict.eof() ; )
{
char slova_stroki[10][30];
CString CPonyatiye="" ;
CString CSlovo="" ;
for(int i=0;<пока не будет конец строки> ;i++) //
{
dict>>slova_stroki ;
CSlovo=stroka;
CSlovo.OemToAnsi();
CPonyatiye=CPonyatiye+CSlovo;
}
int naydeno=CStroka.Find(CPonyatiye);
if(naydeno!=-1) // Значит найдено и делаем то, что нам нужно.
}

Во вложенном цикле, в условии стоит "<пока не будет конец строки>".
Так вот, хотелось бы узнать, как определить это условие, т.е. конец строки, для того, чтобы мы не считывали информацию в эту же строку из следующей строки, т.к. в этом случае произойдёт смешение понятий. Напомню, что понятие может состоять как из одного слова, так и из нескольких слов, но у каждого понятия своя отдельная, единственная строка.
...
Рейтинг: 0 / 0
Определение конца строки в *.txt при использовании fstream, при присвоении данных строки в
    #32879040
Simurg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1.Если тебе нужна строка целиком (или до какого-то символа) есть функция(в help'е она тоже есть):


istream_type&
getline(char_type* s, streamsize n, char_type delim);

Extracts characters and stores them into successive locations of an array whose first element is designated by s. Characters are extracted and stored until any of the following occurs:

n-1 characters are stored
An end-of-file on the input sequence
The next available input character == delim.

If the function stores no characters, it calls the basic_ios member function setstate(failbit), which may throw ios_base::failure. In any case, it stores a null character into the next successive location of the array.

2.Кроме того, (если вдруг не знаешь) отношения равенства и т.п. м/у символами везде в "namespace std", где имеем дело со строками определяются через char_traits<char_type>, а по сему, в for можешь втолкнуть следующую конструкцию:

for( ;
!char_traits<char>::eq_int_type(theInputStream.peek(), char_traits<char>::to_int_type('\n'));
)
{
// Выход по достижении конца строки('\n')
}
...
Рейтинг: 0 / 0
Определение конца строки в *.txt при использовании fstream, при присвоении данных строки в
    #32880454
Ost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ost
Гость
Спасибо.
Ost.
...
Рейтинг: 0 / 0
Определение конца строки в *.txt при использовании fstream, при присвоении данных строки в
    #32880887
Simurg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рад помочь!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Определение конца строки в *.txt при использовании fstream, при присвоении данных строки в
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]