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

Работа со строками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Односвязный, двусвязный список, стек, очередь http://www.cyberforum.ru/cpp-beginners/thread18111.html
В общем, всем кто нуждается. Баггов вы не найдете. Односвязный список #include <iostream> #include <windows.h> using namespace std; class Node {
C++ Помогите !!!! Помогите решить!!!!! Я новичёк http://www.cyberforum.ru/cpp-beginners/thread18069.html
C++ Написать класс Graph
Здравствуйте! Помогите пожалуйста, разобраться с лабой по С/С++ написанной для BC3.1 и преподавателя 1959 г. выпуска (это я к тому, что он без void main() работы не принимает). Прожка такая: #include <iostream.h> #include <stdio.h> #include <conio.h> #include <dos.h> #include <graphics.h> #include <stdlib.h> class Graph {
Найти K-ю цифру в строке натуральных чисел C++
Сразу о главном: дано натуральное K. Найти K-ю цифру в строке натуральных чисел 123456789101112131415.... Что с этим счастьем делать, ума не приложу((( Помогите, пожалуйста, если кто может.
C++ Программа на С http://www.cyberforum.ru/cpp-beginners/thread18057.html
Написать программу, подсчитывающую число прожитых Вами дней. Программа должна предложить Вам ввести дату вашего рождения, текущую дату и выдать сообщение, что Вы живете такой-то день. я это изобразила примерно так: #include<Iostream> using namespace std; int main() { int god, mes, day,run,wer,ryu; cout<<"Vvedite den rogdenia\n"; cin>>run; cout<<"Vvedite mesiac rogdenia\n";
C++ Возможно ли в одном case'е проверить, является ли символ буквой латинского алфавита? помогите,плз разобраться с вопросиком. возможно ли в одном case'е проверить является ли символ буквой латинского алфавита? т.е. сделать аналогично этому: if ((a>='a') && (a<='z')) ? если возможно, то каков синтаксис? всем заранее большое спасибо! ))) подробнее

Показать сообщение отдельно
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
12.12.2008, 20:54     Работа со строками
вот смотри. у тебя функция filecopy является членом класса cl, стало быть она уже имеет ссылку на один объект этого класса, для которого функция вызывается. и в качестве параметра она по идее должна бы получать объект того же класса. Полшага до переопрееления операторов, так сказать. думаю с этим вы еще столкнетесь.

У вас же получается что функция хоть и является методом класса, но к приватной его части никак не обращаяется.

И уж если городить огород, то надо бы прописать конструктор, функции о которых я упоминал выше, и работать уже с объектами вашего класса, а не со стандартными структурами FILE

Добавлено через 41 минуту 15 секунд
в функции accept, есть неточность. ибо не j++ а j=1.

ну и вот что в итоге
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 <stdio.h>
 
#define MAXLINE  1000    
#define IN  1            
#define OUT 0 
           
class Cl{
private: 
    FILE*ifp;
public: 
    FILE* GetCl();
    int SetCl (FILE* fts);
    void filecopy(Cl z);
};
 
 
void Cl::filecopy(Cl z)
{
    int c;
     while ((c = getc(z.ifp )) != EOF)
        putc(c, ifp);
}
 
FILE* Cl::GetCl()
{
    return ifp;
}
//это по сути конструктор с параметром
int Cl::SetCl (FILE * fts)
{
    if(fts==NULL)
        return 0;
    else
    {
        ifp=fts;
        return 1;
    }
}
 
main()
{ Cl ffile, tfile;
    char line[MAXLINE], *p;
    int state;
    long i, j, nl;
    const char *fname = "file.txt"; // отсюда читаем
    const char *tname = "temp.txt"; // сюда пишем
 
        //file.txt должен существовать
    if ((ffile.SetCl(fopen(fname, "rb"))) == NULL)
        return 1;
//temp.txt если не существует - будет создан
    if ((tfile.SetCl(fopen(tname, "wb"))) == NULL)
        return 2;
    i = j = nl = 0;
    while ((p = fgets(line, MAXLINE, ffile.GetCl())) != NULL) {
        nl++;
        if (i == 0) {
//вот тут была ошибка, иначе читалось только две строки. потом j=3, i=2 и все ..
            j=1;
            i = j;
            state = OUT;
        } else {
            i--;
            state = IN;
        }    
        fprintf(tfile.GetCl(), "%03d:%s", nl, (state == OUT ? line : "\n"));
    }
    fclose(ffile.GetCl());
    fclose(tfile.GetCl());
    return 0;
}
проверил. работает.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru