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

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

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

Подправте код проги, С++ - C++

23.02.2011, 13:22. Просмотров 444. Ответов 3
Метки нет (Все метки)

Написать программу, которая считывает текст из файла и выводит на экран сначала предложения, начинающиеся с однобуквенных слов, а затем все остальные.


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
#include <iostream>
#include <fstream>
 
#include <vector>
 
using namespace std;
 
int first_word_len(const string& s) {
    return (s.substr(s.find_first_not_of(' ')).find(' ') == 1) ? 1 : 0;
}
 
bool is_letter(const string& s1, const string& s2) {
    return first_word_len(s1) > first_word_len(s2);
}
 
int main() {
    fstream in_file("data.txt", ios::in);
 
    string buffer;
    vector<string> storage;
 
    while(getline(in_file, buffer, '\n')) {
        storage.push_back(buffer);
    }
    in_file.close();
 
    sort(storage.begin(), storage.end(), is_letter);
 
    for(vector<string>::iterator i = storage.begin(); i < storage.end(); i++) {
        cout << *i << endl;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2011, 13:22     Подправте код проги, С++
Посмотрите здесь:

Подправте код... - C++
Вот код: с++ ругается Unit1.cpp(12): E2268 Call to undefined function 'ln' как я понял ln записывается по другому? Подскажите...

Подправте пожалуйста код - C++
Привет всем. Очень нужна ваша помощь... Вот исходный код на паскале: Program LAB1; uses crt; Procedure WriteByte(a:byte); var...

Переписать маленький код проги на старый борланд - C++
Пожалуйста, очень срочно нужно переписать прогу на старую версию борланда. В долгу не останусь. #include &lt;iostream&gt; #include...

Подправте, пожалуйста, ошибки линкера (MVS2008) ! - C++
из-за ошибок не собрать проект в release. видимо, связано с объявлением и определением функций но вот не разобраться: 1&gt;man.obj :...

проги на С++ - C++
Я полный чайник в программировании,поэтому приходиться просить у вас помощи.Помогите плз сделать несколько программ,а то без них до...

Проги - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; using namespace std; int main() { setlocale(0,&quot;rus&quot;); int...

Перевод проги из С++ в С - C++
Дана программа: #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; using namespace std; int main(int argc, char* argv)...

Написать проги на C - C++
1) Найти сумму целых положительных чисел 30&lt;n&gt;100, кратных 3 и оканчивающихся на 2.4 и 8. 2)Составить программу для вычисления...

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

С++ вроде простые проги - C++
Привет Всем народ очень нужна помощь до четверга написать вот такие программы могу только на паскале а вот на С++ не могу( 3 проги ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1643 / 1271 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
23.02.2011, 17:22     Подправте код проги, С++ #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <vector>
#include <sstream>
using namespace std;
 
int main() {
    fstream in_file("text.txt", ios::in);
    string buffer, tmp;
    vector<string> storage;
    stringstream ss;
    while(getline(in_file, buffer, '.')) {
        ss.str(buffer);
        ss>>tmp;
        ss.clear();
        if(tmp.size()==1) cout<<buffer<<".\n";
        else storage.push_back(buffer);
    }
    in_file.close();
    for(vector<string>::iterator i = storage.begin(); i < storage.end(); i++) {
        cout<<*i<<".\n";
    }
}
vlados92
0 / 0 / 0
Регистрация: 22.02.2011
Сообщений: 28
23.02.2011, 19:59  [ТС]     Подправте код проги, С++ #3
Выдаёт ошибку C:\Users\Влад\Desktop\111\Debug\111.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
Yellow2815
0 / 0 / 0
Регистрация: 03.06.2011
Сообщений: 12
03.06.2011, 12:33     Подправте код проги, С++ #4
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
#include <fstream.h>
#include <string.h>
 
int main()
{
    ifstream fin("test.txt", ios::in | ios::nocreate);
    if (!fin) {cout<<"ERROR! "<<endl; return 1;}
    
    fin.seekg(0, ios::end);
    long len = fin.tellg();
    char *buf = new char [len+1];
    char *ost = new char [len+1];
    fin.seekg(0, ios::beg);
    fin.read(buf, len);
    buf[len] = '\0';
    ost[len] = '\0';
    long n=0, i=0, j=0, o=0, f=0;
    while(buf[i]) {
        if( buf[i] == '?' || buf[i] == '.'||buf[i] == '!') {
            if (buf[n+2]==' ') {
                for (j=n;j<i+1;j++) {f++; cout <<buf[j];}
                    n=i+1;}
             else { 
                                for(j=n;j<i+1;j++) {ost[o]=buf[j];o++;}
                    n=i+1;}
                        }
        i++; 
    }
        long lon=len-f;
    cout<< endl;
    for (j=0;j<lon;j++) cout <<ost[j];
    fin.close();
    cout << endl;
    return 0;
}
Всё работает, вывод правильный за исключением одного: после вывода всего текста появляются лишние символы вида" =======================***** ".
Я понял, что это дело записано в ost, как сделать, чтобы вывод был правильный, для любого количества слов в тексте(важно! так как для определённого текста можно подобрать f так, что вывод будет верный)
Yandex
Объявления
03.06.2011, 12:33     Подправте код проги, С++
Ответ Создать тему
Опции темы

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