|
|
|
Определение конца строки в *.txt при использовании fstream, при присвоении данных строки в
|
|||
|---|---|---|---|
|
#18+
Определение конца строки в *.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) // Значит найдено и делаем то, что нам нужно. } Во вложенном цикле, в условии стоит "<пока не будет конец строки>". Так вот, хотелось бы узнать, как определить это условие, т.е. конец строки, для того, чтобы мы не считывали информацию в эту же строку из следующей строки, т.к. в этом случае произойдёт смешение понятий. Напомню, что понятие может состоять как из одного слова, так и из нескольких слов, но у каждого понятия своя отдельная, единственная строка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2005, 21:05 |
|
||
|
Определение конца строки в *.txt при использовании fstream, при присвоении данных строки в
|
|||
|---|---|---|---|
|
#18+
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') } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2005, 22:29 |
|
||
|
Определение конца строки в *.txt при использовании fstream, при присвоении данных строки в
|
|||
|---|---|---|---|
|
#18+
Спасибо. Ost. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 15:53 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32880887&tid=2033812]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 366ms |

| 0 / 0 |
