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

По текстовым файлам и строкам - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Иконка в SDL http://www.cyberforum.ru/cpp-beginners/thread348244.html
Скажите пожалуйста почему не ставится иконка? Вроде все по науке написано SDL_WM_SetIcon(SDL_LoadBMP("icon.bmp"), 0);
C++ Сетевая библиотека ACE Доброго времени суток. Есть ли в интернете русская документация по сетевой библиотеки ACE? Начиная с азов. http://www.cyberforum.ru/cpp-beginners/thread348243.html
Вычислить сумму произведений всех троек соседних чисел массива C++
Дан одномерный числовой массив A из n элементов. Вычислить сумму произведений всех троек соседних чисел. Вот на паскале const n=10; var a:arrayof integer; i,j,sum:longint; begin writeln('Исходный массив:'); sum:=0; for i:=1 to n do
C++ Исходники клиент-сервер?
Народ всем привет... скинте кому не сложно плиз листинг простейшего консольного рабочего клиент серврного приложения... мож у кого завалялся... тока обезательно на c++ не на с
C++ Подскажите почему может появляться ошибка: "неразрешенный внешний символ "_SDL_..."" http://www.cyberforum.ru/cpp-beginners/thread348179.html
Привет всем =) Скажите пожалуйста почему у меня пишет: 1>SDL.obj : error LNK2001: неразрешенный внешний символ "_SDL_CreateCursor" 1>SDL.obj : error LNK2001: неразрешенный внешний символ "_SDL_Init" 1>SDL.obj : error LNK2001: неразрешенный внешний символ "_SDL_GetError" 1>SDL.obj : error LNK2001: неразрешенный внешний символ "_SDL_SetVideoMode" 1>SDL.obj : error LNK2001: неразрешенный...
C++ Из паскаля в С++ Начал С++ недавно изучать. Школе писал на паскале. Вот исходник никак немогу перевести на С++. Через for & while по провал не получается. Как мне переписать цикл? var n, n3, n5, k: integer; begin write('Введите сумму(>7) n='); readln(n); k := 0; for n3 := 0 to (n div 3) do for n5 := 0 to (n div 5) do begin if n3 * 3 + n5 * 5 = n then writeln(n3, ' трешки и ', n5, '... подробнее

Показать сообщение отдельно
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
22.09.2011, 15:37  [ТС]     По текстовым файлам и строкам
вот смотри такой кот ты написал изначально мне
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
#include <fstream.h> //file i/o
#include <iostream.h>//i/o
 
#include <stdlib.h>  //strlen
#include <string.h>  //strtok
#include <ctype.h>   //isdigit
 
unsigned long ProizvChetnihCifr(char * str);
 
int main()
{
        char delim[] = "*";//Строка разделителей, т.е разделителями могут быть и другие символы
        //в конктреном случае строка всего из 1-го символа, т.к. разделитель по условию '*'
        char * str,*buf;
        unsigned long sLen, proizved = 0, mproizved = 0;
 
        char szFilePath[256];
        cout<<"Vvedite imya fila ";
        cin>>szFilePath;
        ifstream outf(szFilePath);
        if(!outf)
                cout<<"Error open txt.txt\r\n";
        else
        {
                outf.seekg(0,ios::end);
                sLen = outf.tellg();
                outf.seekg(0,ios::beg);
 
                if(!(str = new char[sLen + 1])) //str = длина файла + '\0'
                        cout<<"Error allocation memery\r\n";
                else
                {
                        outf.read(str,sLen);
                        str[sLen] = '\0';
                        buf = strtok(str,delim);//Разбиваем строку на токены
                        while(buf)
                        {
                                if(mproizved < (proizved = ProizvChetnihCifr(buf)))
                                {
                                        mproizved = proizved;
                                        sLen = strlen(buf);
                                }
                                buf = strtok(NULL,delim);
                        }
                        cout<<"Dlinna max identificatora : "<<sLen<<"\r\n";
                        cout<<"Proizvedenie chetnih v nem: "<<mproizved<<"\r\n";
                }
                outf.close();
                if(str)//Чистка не обязательна т.к. после strtok str == NULL
                        delete [] str;
        }
        cout<<"Press any key to continue\r\n";
        char ch;cin>>ch;
        return 0;
}
 
unsigned long ProizvChetnihCifr(char * str)
{
        
        unsigned long ret = 1;
        unsigned long sLen = strlen(str);       
        for(int i = 0,chislo; i < sLen; i++)
        {
                if(isdigit(str[i]))
                {
                        chislo = (int(str[i]) - int('0'));
                        if(chislo % 2 == 0)
                                ret *= chislo;
                }
        }
        return ret;
}
А потом после удаления кое каких строк и перестановки получился у меня такой точно так же работающий и все выполняющий
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
#include <fstream.h>
#include <windows.h> //malloc, GetLastError, strerror, system
#include <string>  //strtok
#include <iostream.h>
#include <stdio.h>   //i/0
int ProizvChetnihCifr(char * but)
{
        int ret = 1,chislo;
        for(int i = 0; i < strlen(but); i++)
 
                if (isdigit (but[i]))
                {
                        chislo = but[i] ;
                        if(chislo % 2 == 0)
                                ret *= chislo;
                }
 
        return ret;
}
int main()
{
        char delim[] = " ";
        char *str,*buf;
        int sLen, proizved = 0, mproizved = 0;
        char Name[15];
        cout << "vvedite ima faila "  ;
        cin >> Name;
        ifstream f(Name);
        if(!f)
        cout <<"Error open text.TXT:";
        else
        {
                f.seekg(0,ios::end);
                sLen = f.tellg();
                f.seekg(0,ios::beg);
 
                        f.read(str,sLen);
                        str[sLen] = '\0';
                        buf = strtok(str,delim);//Разбиваем строку на токены
                        while(buf)
                        {
                                if(mproizved < (proizved = ProizvChetnihCifr(buf)))
                                {
                                        mproizved = proizved;
                                        sLen = strlen(buf);
                                }
                                buf = strtok(0,delim);
                        }
                        cout << "Dlinna max identificatora :" << sLen <<endl;
                        cout <<"Proizvedenie chetnih v nem:" << "" << mproizved <<endl;
                }
                f.close();
        system("pause");//Пауза до нажатия любой клавиши
        return 0;
}
Добавлено через 3 минуты
в последующем коде в строке chislo = but[i] ; не дописал - '0' а так перезапускал много раз все работает... я фиг знает
 
Текущее время: 04:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru