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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Oredium
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 8
#1

Строки и файлы - C++

11.07.2009, 11:28. Просмотров 758. Ответов 6
Метки нет (Все метки)

Помогите plz с задачкой.

Написать программу, которая считывает текст из файла и выводит на экран
только предложения, состоящие из заданного количества слов.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2009, 11:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки и файлы (C++):

файлы и строки - C++
уважаемые программисты! помогите пожалуйста нужно написать программу, которая считывает текст из файла и выводит его на экран, меняя ...

Строки и файлы - C++
Существует текстовый файл, в котором записано некоторое стихотворение, строчки которого перепутаны местами. В конце каждой строки указано...

Строки и файлы - C++
Помогите... Написать программу, которая считывает содержимое указанного .txt файла и выводит его содержимое на экран, нумеруя при этом...

Файлы и строки - C++
Помогите мне решить эту задачу: написать программу, которая считывает текст из файла ивыводит на экран сначала вопросительные а затем...

Строки и файлы в С++ - C++
Дана строка S, состоящая из слов, разделённых пробелами, и слово C. Напечатайте все слова из строки S, отличные от слова C. Вход и выход...

Строки и файлы - C++
Добрый день. Прошу у вас помощи в данной теме. Сколько не кручу все никак не получается. Пробовал поиск и вроде бы нашел похожую программу,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.07.2009, 12:14 #2
Помогите plz с задачкой.
напишите и помогите - разные вещи.

вот код, считывающий текст из файла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <algorithm>
#include <fstream>
#include <iterator>
#include <string>
#include <iostream>
 
int main()
{
  std::ifstream in("file.txt");
  if (!in) {
    std::cerr << "File not found\n";
    return 1;
  }
 
  std::string text;
  std::copy(std::istream_iterator<char>(in >> std::noskipws),
            std::istream_iterator<char>(), back_inserter(text));
  in.close();
 
  return 0;
}
0
Oredium
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 8
11.07.2009, 12:20  [ТС] #3
Цитата Сообщение от zim22 Посмотреть сообщение
напишите и помогите - разные вещи.
Ну я тут сижу на практике, мне сдавать кучу всего, у меня тут такой стресс, поэтому уж что написалось...

Выдает ошибку error C2065: 'back_inserter' : undeclared identifier
0
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.07.2009, 12:25 #4
Цитата Сообщение от Oredium Посмотреть сообщение
Выдает ошибку error C2065: 'back_inserter' : undeclared identifier
C++
1
std::back_inserter
***
какой компилятор?
0
Oredium
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 8
11.07.2009, 12:29  [ТС] #5
Шестая студия
0
YurA_280784
Заблокирован
11.07.2009, 14:50 #6
Вот мои соображение по поводу решения))))
Как бонус оснастил консоль возможностью выбора файла через SHL_DIALOG
Рисунки думаю сами за себя говорят, а исходный текст у меня был в файлике sentences.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
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
#include <windows.h>
#include <shlobj.h>
#include <stdio.h>
 
//http://www.cyberforum.ru/cpp-beginners/thread43661/post213777.html
FILE *f;
char * chBuf = (char *)malloc(sizeof(char));
LPTSTR SelectFile();
LPTSTR GetSentence(LPTSTR str);
LPTSTR MoveShifts(LPTSTR str);
void PrintSentece(LPTSTR str, int nWords);
 
void main()
{
    printf("Vvedite chislo slov v predlozhenii\r\n");
    int nCount,fLen;scanf("%d",&nCount);
    char sPath[MAX_PATH];sPath[0] = '\0';
    if(sprintf(sPath,SelectFile()))
    {
        if((f = fopen(sPath,"rb+")))
        {
            fseek(f,0,SEEK_END);
            fLen = ftell(f);
            fseek(f,0,SEEK_SET);
            chBuf = (char *)realloc((void *)chBuf,fLen);
            fread(chBuf,1,fLen,f);
            fclose(f);
            while(strlen(chBuf))
                PrintSentece(GetSentence(chBuf),nCount);
            chBuf = (char *)realloc((void *)chBuf,sizeof(char));
        }
        else
            printf("oshibka otkritia %s\r\n%s",sPath,strerror(ferror(f)));
    }
    else
        printf("Oshibka vibore fila\r\n");
    printf("1 - Vibrat' drygoi file\r\n");
    scanf("%d",&nCount);
    if(nCount == 1)
        main();
}
 
LPTSTR SelectFile()
{
    char sPath[MAX_PATH];sPath[0] = '\0';
    LPCITEMIDLIST lpItemDList;
    BROWSEINFO bi = {NULL, NULL, sPath,
       "Выберите файл для чтения",
        BIF_DONTGOBELOWDOMAIN|BIF_BROWSEINCLUDEFILES,
        NULL,
        NULL,
        0
    };
    if((lpItemDList=SHBrowseForFolder(&bi)))
    {
        if(SHGetPathFromIDList(lpItemDList, sPath))
            GetShortPathName((LPCTSTR)sPath,sPath,strlen(sPath));
    }
    return &sPath[0];
}
 
LPTSTR GetSentence(LPTSTR str)
{
    char * chBuf = strrchr(str,'.');
    if(chBuf)
        str[strlen(str) - strlen(chBuf)] = '\0';
    else
        str[0] = '\0';
 
    if(str)
        chBuf = strrchr(str,'.');
    if(!chBuf)
        chBuf = str;
    else
        chBuf++;
    return chBuf;
}
 
LPTSTR MoveShifts(LPTSTR str)
{
    int sLen = strlen(str);
    char * chBuf = (char *)malloc(sLen*sizeof(char));
    for(int i = 0,j = 0; i < sLen; i++, j++)
    {
        while(str[i] == ' '&&i < sLen)
        {
            if(i < sLen)
            if(str[i + 1] != ' ')
                break;
            i++;
        }
        chBuf[j] = str[i];
    }
    chBuf[j] = '\0';
    while(chBuf[0] == ' ')
        chBuf++;
    return chBuf;
}
 
void PrintSentece(LPTSTR str, int nWords)
{
    char * chBuf = MoveShifts(str);
    while(chBuf)
    {
        chBuf = strchr(chBuf + 1,' ');
        nWords--;
    }
    if(0 == nWords)
        printf("%s.\r\n",str);
}
0
Миниатюры
Строки и файлы   Строки и файлы  
Вложения
Тип файла: txt sentences.txt (109 байт, 26 просмотров)
Oredium
0 / 0 / 0
Регистрация: 11.07.2009
Сообщений: 8
12.07.2009, 02:18  [ТС] #7
Ну у меня в итоге все вылилось вот в такую задачку. Но все равно, всем спасибо!
И я получила таки зачет. Все теперь домой с чистой совестью

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
#include <iostream>
#include <string>
#include <fstream>
#include <string.h>
 
 
using namespace std;
 
int main()
{
     int amount=0;
     string s, str, sent;
     ifstream file("111.txt");
 
     cout<<"How many words? ";
     cin>>amount;
 
     while(true) 
     { 
          getline(file, s); 
          s+='\n';
          str+=s;
          if (file.eof()) 
               break; 
     }
     int i=0, j;
     while( i!=str.length() )
     {
          if ( (str[i] == '.') || (str[i] == '!') || (str[i] == '?'))
          {
               int count=0;
               for (j=0; j<sent.length(); j++)
                    if ( (sent[j]==' ') && (sent[j-1]!=' ') && (sent[j+1]!=' ') )
                         count++;
               if ( count==amount )
                    cout<<sent<<endl;
               sent.erase();
          }
          else
               sent+=str[i];
          i++;
     }
     return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2009, 02:18
Привет! Вот еще темы с ответами:

Файлы и строки - C++
Вот пишу такую программу которая выводит в файл 2 строки из первого диапазоном Н по К. Это получилось. Следующий щаг - подсчет количества...

Файлы и строки - C++
пожалуйста помогите решить мне эту задачу???? написать программу, которая считывает текст из файла и определяет, сколько в нем слов,...

Строки и файлы - C++
Подскажите, пожалуйста, как изменить эту программу. Нужно считать текст из файла и вывести количество вхождений заданного слова. Что нужно...

строки и файлы - C++
Я не знаю язык С++. Точнее я не знаю операторы которые выполняют те или иные функции. Так преподают в ВУЗе, что есть практика а вот с...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.07.2009, 02:18
Ответ Создать тему
Опции темы

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