Форум программистов, компьютерный форум CyberForum.ru

вывод строки по заданному слову - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Передать сообщение объекту http://www.cyberforum.ru/cpp-beginners/thread244116.html
Немогу разобраться с передачей сообщений объекту помогите напримере задачи: создать обьект на базе класса "студент" при создании обьекта вывести сообщение с фамилией и именем которые ему передаются в сообщении. Или посоветуйте какую-нибуть литературу по ООП где это будет разобрано на примерах.
C++ дачники http://********/?main=task&id_task=12 Люди, подскажите,пожалуйста ,каким методом эту задачу решить можно?А то я решил, но у меня на 1500 символов кода, это ж... http://www.cyberforum.ru/cpp-beginners/thread244115.html
не могу разобраться с кодом.. что бы построить блок схему C++
#include "stdafx.h" #include <iostream> #include <math.h> using namespace std; void main() { int a, b, n, first, k, i; bool simp;
C++ Error C2679: binary '>>': no operator found which takes a right-hand operand of type
нужно написать программу обработки структур. в программе использовать структуру, содержащую поля с информацией об учащихся: - фамилия и инициалы; - дата рождения; - номер группы; - оценки за семестр по предметам: физика, математика, информатика, этика, психология. организовать ввод исходных данных, средний балл каждого учащегося рассчить по введенным оценкам. так же вывести анкетные данные...
C++ разбить метод http://www.cyberforum.ru/cpp-beginners/thread244084.html
class ar { int *ix,in; public: void task1(); .................... ........................ }; есть файл, где объявлен класс ar.h. его реализация в ar.cpp .
C++ Определить является ли число к степенью 3 Определить является ли число к степенью 3. подробнее

Показать сообщение отдельно
tolik_it
Сообщений: n/a
17.02.2011, 19:38     вывод строки по заданному слову
Доброго всем времени суток! Я только начинаю изучать с++ и мне очень нужна помощь.. кому не сложно помогите пожалуйста...
Собственно суть вопроса в следующем:

Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово.
Вот то что пока у меня получилось. Я только нахожу количество слов, а вот вывести все предложение содержащее это слово не получается все уже облазил но ничего конкретного не нашел..
PS ищет только английские слова
Заранее всем благодарен
Вот код
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
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
//---------------------------------------------------------------------------
 
 
#include <vcl.h>
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <fstream>
#include <iomanip>
#include <string>
#include <stdlib.h>
#include <stdio.h>
 
using namespace std;
const h=4;
const l=81;
char bufRus [256];
char* Rus(char* mes)
 { AnsiToOem (mes, bufRus);
    return bufRus;
 }
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main()
{int length;
char line[l], *tok;
char delims[]=",.!?\|/()*:; ";
ifstream f("text.txt",ios::in);
//определяем длину файла
f.seekg(0,ios::end);
length=f.tellg();
f.seekg(0,ios::beg);
char *buf=new char[length+1];
f.read(buf, length);
f.close();
char s[2];
char k[81];
buf[length]='\0';
cout<<Rus("\nИсходный текст\n\n");
for (int i = 0; i < length; i++){
    s[0]=buf[i]; s[1]='\0';
    cout << Rus(s);}
cout<<Rus("\nВведите слово - ");cin>>k;
//ifstream d("text.txt",ios::in);
long n=0;//позиция начала предложения
long i=0, j=0;
FILE *d;
d=fopen("text.txt","r");
int kol=0;
//while (!d.eof())
while (!feof(d))
{
//d.get(line, sizeof(line),'\n');
fgets(line, sizeof(line), d);
tok=strtok(line, delims);
while (tok!=NULL)
{if (!strcmp(tok, k))
 
kol++;
tok=strtok(NULL, delims);}
}
cout<<Rus("\nКоличество найденных слов ")<<kol;
fclose(d);
delete [] buf;
if (getch()) exit(0);
    return 0;
}
 
//---------------------------------------------------------------------------
Добавлено через 10 часов 8 минут
Вопрос снят все получилось правда проверка окончания строки идет только по точке "." Всем спасибо
Вот код:
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
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
//---------------------------------------------------------------------------
 
 
#include <vcl.h>
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <fstream>
#include <iomanip>
#include <string>
#include <stdlib.h>
#include <stdio.h>
 
using namespace std;
const h=4;
const l=255;
char bufRus [256];
char* Rus(char* mes)
 { AnsiToOem (mes, bufRus);
    return bufRus;
 }
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main()
{int length;
char line[l], *tok;
char delims[]=",.!?\|/()*:; ";
ifstream f("text.txt",ios::in);
//определяем длину файла
f.seekg(0,ios::end);
length=f.tellg();
f.seekg(0,ios::beg);
char *buf=new char[length+1];
f.read(buf, length);
f.close();
char s[2];
char k[81];
buf[length]='\0';
cout<<Rus("\nИсходный текст\n\n");
for (int i = 0; i < length; i++){
    s[0]=buf[i]; s[1]='\0';
    cout << Rus(s);}
cout<<Rus("\nВведите слово - ");cin>>k;
fstream d("text.txt",ios::in);
long n=0;//позиция начала предложения
long i=0, j=0;
int kol=0;                     
string text;
while (!d.eof())
{
getline(d, text, '.');
int r=text.length();
for (i = 0; i <= r; i++) line[i]=text[i];
if (strstr(line, k)) {
for (i = 0; i <= r; i++) {
s[0]=text[i]; //s[1]="";
cout<<Rus(s);
 
}
}
}
d.close();
delete [] buf;
if (getch()) exit(0);
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru