Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Нахождение самого длинного слова в файле


Автор: Rofar 30.10.2009, 17:34
Ещё одна проблема с лабой smile  
Нужно напечатать самое длинное слово, найденное в текстовом файле. Помогите плз... 

Автор: andrew_121 30.10.2009, 18:17
Rofar, Зачем постить на каждом форуме?
http://www.cyberforum.ru/cpp-beginners/thread60041.html#post328834

Автор: 586 30.10.2009, 18:21
Код
#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[])
{
    char bigWord[256], buf[256];
    size_t bigWordLength=0, bufLength;
    FILE *f;

    bigWord[0] = '\0';

    f = fopen("C:\\test.txt", "r");
    if(f)
    {
        while(fscanf(f, "%255s", buf) != EOF)
        {
            bufLength = strlen(buf);
            if(bufLength > bigWordLength)
            {
                strcpy(bigWord, buf);
                bigWordLength = bufLength;
            }
        }
        if(bigWordLength == 0)
        {
            puts("File is empty");
        }
        else
        {
            printf("Big word: \"%s\" (Length: %u)\n", bigWord, bigWordLength);
        }
        fclose(f);
    }
    else
    {
        puts("Cannot open file");
    }
    getchar();
}

Автор: azesmcar 30.10.2009, 18:43
Код

#include <iostream>
#include <algorithm>
#include <functional>
#include <iterator>
#include <fstream>
#include <string>

struct SizeCheckPredicate:
    std::binary_function<std::string, std::string, bool>
{
    bool operator ()(const std::string& l, const std::string& r) const {
        return l.size() < r.size();
    }
};

int main ()
{
    std::ifstream file("c:\\file.txt");
    
    std::string maxw = *std::max_element(
        std::istream_iterator<std::string>(file),
        std::istream_iterator<std::string>(),
        SizeCheckPredicate());

    std::cout << maxw << std::endl;
}

вот еще на C++

Автор: andrew_121 30.10.2009, 19:10
azesmcar, Щас тебя обругают smile ( http://forum.vingrad.ru/index.php?showtopic=278374&view=findpost&p=2008997 )

Автор: azesmcar 30.10.2009, 19:41
andrew_121

Ну вариант на Си у него уже есть, и к тому же большинство новичков думают что это одно и тоже smile 

Автор: andrew_121 30.10.2009, 19:50
Цитата(azesmcar @  30.10.2009,  19:41 Найти цитируемый пост)
большинство новичков думают что это одно и тоже

smile
Жаль не все форумчане это понимают(или не хотят).

Автор: zim22 30.10.2009, 21:06
Цитата(azesmcar @  30.10.2009,  17:43 Найти цитируемый пост)
struct SizeCheckPredicate:    std::binary_function<std::string, std::string, bool>

какой смысл наследоваться от binary_function, если не пользоваться её фичами?
Код

result_type operator ()(const first_argument_type& l, const second_argument_type& r) const {

Автор: andrew_121 30.10.2009, 21:11
Цитата(zim22 @  30.10.2009,  21:06 Найти цитируемый пост)
какой смысл наследоваться от binary_function, если не пользоваться её фичами?

Возможно для совместимости? хз*

Автор: Rofar 30.10.2009, 21:25
Цитата(andrew_121 @ 30.10.2009,  18:17)
Rofar, Зачем постить на каждом форуме?
http://www.cyberforum.ru/cpp-beginners/thread60041.html#post328834

на том форуме я вопрос задал раньше, посмотрел что отзывается только один niXman  и решил написать Вам, так как здесь идёт живое обсуждение smile ... и в начале я на этом форуме хател разобраться с массивом...

Добавлено @ 21:30
586  отдельное БИГ СПС , остальных так же благодарю!

Автор: azesmcar 30.10.2009, 21:40
Цитата(zim22 @  30.10.2009,  21:06 Найти цитируемый пост)
какой смысл наследоваться от binary_function, если не пользоваться её фичами?

А что смысл наследования функторов только в этом? Вообще-то тут наследование вообще не нужно, просто привычка.

Автор: zim22 30.10.2009, 22:40
Цитата(azesmcar @  30.10.2009,  20:40 Найти цитируемый пост)
А что смысл наследования функторов только в этом?

http://stackoverflow.com/questions/609937/what-is-the-benefit-of-inheriting-from-stdbinaryfunction-or-stdunary-functi ещё смыслов нашёл:
Цитата

If you ever going to use your Functors with other std Functors modificators like not1, bind1st you have to inherit from [unart|binart]_function.

Цитата

 When I see struct Foo {... my first thought will be "Foo is a type". But with struct Foo : public unary_function<... I already know that Foo is a functor.

вобщем польза есть smile

azesmcar,  smile 

Автор: Rofar 30.10.2009, 22:40
Обьясните плз что делает строка 
Код

 while(fscanf(f, "%255s", buf) != EOF)

точнее что такое  "%255s"?

Автор: andrew_121 30.10.2009, 22:53
Rofar, Максимальная длина выводимой строки.

Добавлено через 22 секунды
т.е. вводимой ;)

Автор: Rofar 31.10.2009, 10:42
Цитата(andrew_121 @ 30.10.2009,  22:53)
Добавлено @ 22:53
т.е. вводимой ;)

Спасыыбаа учытэл! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)