Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 12.12.2008
Сообщений: 26
1

Работа со строками

11.12.2008, 17:20. Показов 5386. Ответов 37
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Товарищи, такая вот проблема. Есть задача. Прочитать строки из файла, а потом записать их следующим образом. Первую оставить, вторую -удалить, на месте её - пустая строка. Третью - оставить, на месте следующих двух - две пустые строки. Шестую - оставить, затем три пустые строки.
При этом все, даже пустые, строки должны быть пронумированы.

Сам написал такой вот бред, но думаю можно проще и правильнее.
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
main()
{
fstream file;
file.open("D:\1.txt",ios::in);
char a[256];
char*s=new char[];
int i=0;
while(!file.eof())
{ 
    file.getline(a,256,"\n");
    for(int j=0; j<(int)(strlen(a));j++)
    {s[i]=a[j];
    i++;}
    s[i]=";";
    i++;
}
file.close();
 
int z=0;
int d=1;
int f=1;
file.open("D:\1.txt",ios::out);
for(int b=0; b<(int)(strlen(s));b++)
{
    file<<s[b];
    if(s[b]==;)
    {
        for(int c=0; c<d; c++)
        {file<<"\n";}
        for(int e=0; e<f; e++)
        {
        while(s[b+1]!=;)
        {z=b+1;}}
    b=z;d++;f++;}
}
file.close();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2008, 17:20
Ответы с готовыми решениями:

Работа со строками. Функции работы со строками
Дана строка символов. В заданном тексте определить позицию первой точки ‘ . ‘.

Работа со строками, заполнить компоненты строками из файла
Привет! Нужна помощь в заполнении формы В общем, есть форма отправки письма. У нее есть 2 функции,...

Работа со строками(операции над строками)
Пусть дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных...

Задание по темам: ООП, исключения, работа со строками (возможно применение коллекций List), работа с компоновщиком
ТЯЖЕЛО РАБОТАТЬ С КОМПОНОВЩИКОМ. БУДУ РАД ВАШИМ ОТВЕТАМ. 1. Ознакомиться с принципом работы...

37
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
11.12.2008, 20:00 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
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
 
#define MAXLINE  1000    /* максимальная длина строки */
#define IN  1            /* внутри пропусков */
#define OUT 0            /* снаружи пропусков */
 
/* читает строки из файла, а потом записывает их определённым образом 
   первую оставить, вторую - удалить, на месте её - пустая строка и т.д. */
main()
{
    FILE *fp;
    char line[MAXLINE], *p;
    int state;
    long i, j, nl;
        
    if ((fp = fopen("file.txt", "rb")) == NULL)
        return 1;
    i = j = nl = 0;
    while ((p = fgets(line, MAXLINE, fp)) != NULL) {
        nl++;
        if (i == 0) {
            j++;
            i = j;
            state = OUT;
        } else {
            i--;
            state = IN;
        }    
        printf("%03d:%s", nl, (state == OUT ? line : "\n"));
    }
    fclose(fp);
    return 0;
}
0
0 / 0 / 0
Регистрация: 12.12.2008
Сообщений: 26
12.12.2008, 03:27  [ТС] 3
Спс. Еще один вопрос - это можно реализовать через класс? (Чтобы файловая переменная принадлежала к классу и была типа Private)
0
22 / 21 / 6
Регистрация: 03.12.2008
Сообщений: 85
12.12.2008, 03:41 4
есть класс CFile
0
0 / 0 / 0
Регистрация: 12.12.2008
Сообщений: 26
12.12.2008, 04:55  [ТС] 5
Про сифайл слышал. Тут дело в другом, надо создать свой собственный класс(пусть будет class1), в котором обьявить файловую переменную(в данном случае это fp) типа private. И чтобы в коде мейна она уже фигурировала как class1.fp. Такое вот задание препод дал.
И еще один вопрос, по коду, который дал accept. Файл он открывает и в консоли записывает все правильно, но вот обратно в файл не записывает. Можете с этим помочь?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
12.12.2008, 07:58 6
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
#include <stdio.h>
 
#define MAXLINE  1000    /* максимальная длина строки */
#define IN  1            /* внутри пропусков */
#define OUT 0            /* снаружи пропусков */
 
/* читает строки из файла, а потом записывает их определённым образом 
   первую оставить, вторую - удалить, на месте её - пустая строка и т.д.;
   с перезаписью файла */
main()
{
    void filecopy(FILE *, FILE *);
    FILE *fp, *tfp;
    char line[MAXLINE], *p;
    int state;
    long i, j, nl;
    const char *fname = "file.txt";
        
    if ((fp = fopen(fname, "rb")) == NULL)
        return 1;
    if ((tfp = tmpfile()) == NULL)
        return 2;
    i = j = nl = 0;
    while ((p = fgets(line, MAXLINE, fp)) != NULL) {
        nl++;
        if (i == 0) {
            j++;
            i = j;
            state = OUT;
        } else {
            i--;
            state = IN;
        }    
        fprintf(tfp, "%03d:%s", nl, (state == OUT ? line : "\n"));
    }
    fclose(fp);
    rewind(tfp);
    if ((fp = fopen(fname, "wb")) == NULL)
        return 3;
    filecopy(tfp, fp);
    fclose(tfp);
    fclose(fp);
    return 0;
}
 
/* filecopy:  копирование файла ifp в файл ofp */
void filecopy(FILE *ifp, FILE *ofp)
{
    int c;
    
    while ((c = getc(ifp)) != EOF)
        putc(c, ofp);
}
может быть можно как-то отрезать от исходного файла часть по окончании работы, т.к. из-за пустых строк файл теряет размер (не будешь же пробелы сохранять), темповый файл - стандарт
классы это уже цпп, я пока с сишником
1
22 / 21 / 6
Регистрация: 03.12.2008
Сообщений: 85
12.12.2008, 10:08 7
ну если препод так хочет, то можно показать ему следующее
C++
1
class MyFile : public CFILE
и пусть грызет локти)
только не совсем понятно, что он подразумевает под "переменной типа файл". если структуру FILE .. то возникает другой вопрос - на кой черт огород городить, если все и так огорожено.

C++
1
2
3
4
5
6
7
8
9
class MyFile
{
private:
FILE * fp;
pubilc:
MyFile();
void filecopy(FILE *, FILE *);
~MyFile();
}
но коли переменная объявлена как private, обратиться к ней просто через точку не получится. ибо на то она и private. Видимо товарищ препод добивается от вас еще и написания функция, позволяющих менять это самое fp, например

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class MyFile
{
private:
FILE * fp;
pubilc:
MyFile();
void filecopy(FILE *ftc1, FILE *ftc2);
*FILE GetMyFile();
void SetMyFile (FILE* fts);
~MyFile();
}
 
FILE*MyFile::GetMyFile()
{
return fp;
}
 
void MyFile::SetMyFile (File * fts)
{
fp=fts;
}
1
0 / 0 / 0
Регистрация: 12.12.2008
Сообщений: 26
12.12.2008, 16:04  [ТС] 8
Ага, то есть переменные private доступны только для функции, обьявленной в этом же классе? Ногами просьба не бить, просто мы си проходим только месяц, а на допуск к экзамену сказал эту прогу сделать, просто беда(
Так а может в классе обьявить как привейт непосредственно файловую переменную и как паблик функцию, в описание которой запихать потом код, данный acceptom? Так получится?
Accept, небольшая просьба. Можешь сделать комментарии к твоему коду, хотя бы примерные. А то я в нем две трети операторов не знаю, а преподу надо что то сказать)
0
22 / 21 / 6
Регистрация: 03.12.2008
Сообщений: 85
12.12.2008, 17:10 9
Именно так, приват для того и сделан чтобы функции - не члены класса не имели доступ к этим переменным. Пересадить функции accept'а в класс еще как получится, именно так и надо сделать дабы угодить вашему преподу. Попробуйте сами, компилятора нет под рукой, да и пользительно будет_)
0
0 / 0 / 0
Регистрация: 12.12.2008
Сообщений: 26
12.12.2008, 17:45  [ТС] 10
Вот хочу пойти наиболее простым путем и в классе обьявить лишь функцию filecopy, как паблик, и переменную ifp, как привейт. Преподу пофиг, что именно сделал в классе, главное чтоб файлофая переменная там была, и к ней ты потом образался.
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
#include <stdio.h>
 
#define MAXLINE  1000    
#define IN  1            
#define OUT 0            
class cl
{private: FILE*ifp;
public: void filecopy(FILE*,FILE*);
};
 
 
void cl::filecopy(FILE *ifp, FILE *ofp)
{ cl z;
    int c;
    
    while ((c = getc(z.ifp )) != EOF)
        putc(c, ofp);
}
 
 
main()
{ cl y;
        FILE *fp, *tfp;
    char line[MAXLINE], *p;
    int state;
    long i, j, nl;
    const char *fname = "file.txt";
        
    if ((fp = fopen(fname, "rb")) == NULL)
        return 1;
    if ((tfp = tmpfile()) == NULL)
        return 2;
    i = j = nl = 0;
    while ((p = fgets(line, MAXLINE, fp)) != NULL) {
        nl++;
        if (i == 0) {
            j++;
            i = j;
            state = OUT;
        } else {
            i--;
            state = IN;
        }    
        fprintf(tfp, "%03d:%s", nl, (state == OUT ? line : "\n"));
    }
    fclose(fp);
    rewind(tfp);
    if ((fp = fopen(fname, "wb")) == NULL)
        return 3;
    y.filecopy(tfp, fp);
    fclose(tfp);
    fclose(fp);
    return 0;
}
Так вот, хочу сразу в конструторе filecopy прописать некую классовую переменную, и с помощью её же через точку в этом же конструкторе обращаться к ifp. Это возможно? Вот что то написал.
При компиляции данного кода ошибок не выдает, лишь одно предупреждение
warning C4700: local variable 'z' used without having been initialized
Но программа не работает. Наверное раннее описанное мной предложение все же технически невозможно)
0
22 / 21 / 6
Регистрация: 03.12.2008
Сообщений: 85
12.12.2008, 20:54 11
вот смотри. у тебя функция 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;
}
проверил. работает.
1
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
12.12.2008, 23:20 12
//вот тут была ошибка, иначе читалось только две строки. потом j=3, i=2 и все ..
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
#include <stdio.h>
 
#define MAXLINE  1000    /* максимальная длина строки */
#define IN  1            /* внутри пропусков */
#define OUT 0            /* снаружи пропусков */
 
/* читает строки из файла, а потом записывает их определённым образом 
   первую оставить, вторую - удалить, на месте её - пустая строка и т.д.;
   с перезаписью файла */
main()
{
    void filecopy(FILE *, FILE *); // функция будет использоваться в этой области
    FILE *fp, *tfp;
    char line[MAXLINE], *p;
    int state;
    long i, j, nl;
    const char *fname = "file.txt";
        
    if ((fp = fopen(fname, "rb")) == NULL)
        return 1;
    if ((tfp = tmpfile()) == NULL)
        return 2;
    i = j = nl = 0;
    while ((p = fgets(line, MAXLINE, fp)) != NULL) { // NULL будет когда файл закончится
        nl++; // считает каждую строку
        if (i == 0) { // пока i > 0 вставлять пустые строки
            j++; // сколько пустых строк вставлять на этот раз (должно расти по условию)
            i = j; // ставит верхнюю границу, которую снижает до нуля
            state = OUT; // флаг - выводить строку
        } else {
            i--; // сколько ещё пустых строк осталось вывести
            state = IN; // флаг - скрыть строку
        }
        // флаг управляет выводом:
        // что вывести с номером? строку или пустую строку
        fprintf(tfp, "%03d:%s", nl, (state == OUT ? line : "\n"));
    }
    fclose(fp);
    rewind(tfp); // переводит указатель темпового файла в начало, т.к. туда писались строки
    if ((fp = fopen(fname, "wb")) == NULL) // файл может иметь только право на чтение, проверит
        return 3;
    filecopy(tfp, fp);
    fclose(tfp); // стирает темповый файл
    fclose(fp);
    return 0;
}
 
/* filecopy:  копирование файла ifp в файл ofp */
void filecopy(FILE *ifp, FILE *ofp)
{
    int c;
    
    while ((c = getc(ifp)) != EOF)
        putc(c, ofp);
}
Добавлено через 7 минут 40 секунд
const char *tname = "temp.txt"; // сюда пишем
в каталоге может быть запрет на изменение списка файлов

//temp.txt если не существует - будет создан
не будет создан

и программу закинуть в такой каталог можно - моя сработает а твоя завалится

Добавлено через 4 минуты 6 секунд
и ещё там может лежать файл temp.txt в котором уже может быть что-то важное (от другой программы например твоей же такой же)

Добавлено через 1 минуту 14 секунд
так что сначала у себя в голове ошибки исправь

Добавлено через 11 минут 18 секунд
//вот тут была ошибка, иначе читалось только две строки
всё там правильно
1
22 / 21 / 6
Регистрация: 03.12.2008
Сообщений: 85
13.12.2008, 00:08 13
оххо. сколько агрессии. accept, давай пиписьками меряться не будем, а? Я всего лишь хотел помочь автору. Ошибки в j++ действительно нет, ошибка тут:
C++
1
fprintf(tfp, "%03d:%s", nl, (state == OUT ? line : "\n"));
, ибо не каждую итерацию цикла каретка смещается на новую строку, потести - увидишь.

Автору удачи.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
13.12.2008, 01:40 14
давай пиписьками меряться
мне вообще пофиг это тебя заботит

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

ибо не каждую итерацию цикла каретка смещается на новую строку
потести увидишь? а может ты потестишь, получишь ошибку и выложишь сюда

\r перед \n пусть добавит и то, если потребуется

Добавлено через 52 минуты 43 секунды
я нашёл причину, перешёл в виндовс и скомпилировал в bc3.1, не работает даже консоль
но у меня есть lcc и я написал код в соответствии стандарту ANSI (это 89 год), потому когда я применил lcc для компиляции, сработала как и консоль так и запись в файл и даже без \r
а в bc3.1 не сработала вообще конструкция ?:
потому тебе кажется что там ошибка
0
0 / 0 / 0
Регистрация: 12.12.2008
Сообщений: 26
13.12.2008, 03:45  [ТС] 15
FOLKEN, вот в твоем коде заменил фнейм и тнейм на имя файла 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
72
#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"; 
 
            if ((ffile.SetCl(fopen("1.txt", "rb"))) == NULL)
        return 1;
 
    if ((tfile.SetCl(fopen("1.txt", "wb"))) == NULL)
        return 2;
    i = j = nl = 0;
    while ((p = fgets(line, MAXLINE, ffile.GetCl())) != NULL) {
        nl++;
        if (i == 0) {
 
            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;
    
}
Но прога у меня лишь стирает все содержимое из 1.тхт, и ничего туда не пишет.
Кстати функция файлкопи у тебя описана, но в мейне не вызывается. Так и должно быть?
0
22 / 21 / 6
Регистрация: 03.12.2008
Сообщений: 85
13.12.2008, 04:20 16
вместо j=1 надо j++, accept тут совершенно прав. И посмотри на свой код. ты открываешь файл 1.txt а пишешь в temp.txt

filecopy как-то и не особо нужна оказалась. Если обязательно нужно ее использовать - бери пример accept'a, если нужен пример с классами - можешь взять вот это (теперь точно все работает как надо)

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
#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;
    long i, j, nl;
    const char *fname = "file.txt"; 
    const char *tname = "temp.txt"; 
  
    if ((ffile.SetCl(fopen(fname, "rb"))) == NULL)
        return 1;
 
    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++;
            i = j;
            fprintf(tfile.GetCl(), "%03d: %s\n", nl, line);
        } else {
            i--;
            fprintf(tfile.GetCl(),"%03d: \r\n",nl);
        }    
    }
    fclose(ffile.GetCl());
    fclose(tfile.GetCl());
    return 0;
}
1
0 / 0 / 0
Регистрация: 12.12.2008
Сообщений: 26
13.12.2008, 09:01  [ТС] 17
Спс, это пример работает.
Остались два небольших вопроса.
В файле, в который прога записывает результат, после строк, которые остаются(1,3,6 и т.д) печатаются три пустых прямоугольника(непечатных символа). Это как нибудь решается?
И еще, можно сделать так, чтобы прога выдавала результат в тот же файл, из которого брала исходные строки, или можно только в новый?
Так, первый вопрос решил сам просто убрал из этой строки /n.
C++
1
fprintf(tfile.GetCl(), "%03d: %s\n", nl, line);
Остался вопрос про запись в тот же файл, из которого взяты исходные данные.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
13.12.2008, 12:18 18
качайте нормальный компилятор (по стандарту он должен читать из файла перенос строки какой бы он ни был и переводить его в \n, а \n при выводе переводить в перевод строки родной для системы, даже если он двойной)
http://www.q-software-solution... cwin32.exe

очень интересно это после супер-кода temp.txt остаётся на диске ?

Код
"%03d: %s\n", nl, line);
зря так сделал - поменял смысл, в строке уже есть \n когда она попадает в line из файла (fgets не отбрасывает конец строки)
а так это и не ты сделал, это опять FOLKEN

FOLKEN не трогай мой код, ты не шаришь, ты какого хера темповый файл заменил на свой ? который в итоге как мусор болтается после работы проги
и возврат каретки можно не делать, т.к. это получается лишнее действие (ненужное то есть)
0
22 / 21 / 6
Регистрация: 03.12.2008
Сообщений: 85
13.12.2008, 12:56 19
Автор, юзай вышеописанную filecopy.

accept, с вами разговор окончен, всего хорошего
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
13.12.2008, 13:17 20
lcc не компилит с++

борланд не может скомпилить
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
using namespace std;
main()
{
    cout << "Hello, world!" << endl;
    return 0;
}
с вами разговор окончен, всего хорошего
пиши свой код

мой код работает без изменений классы туда встроить можно легко поищи кого-нибудь более продвинутого, FOLKEN добавляет ошибки а потом будет говорить это не мой код это код accepta
от тебя требовалось то прикрутить классы без изменений кода, а ты даже с этим не справился
учи стандарты а не компиляторы с conio и прочей фигнёй
0
13.12.2008, 13:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2008, 13:17
Помогаю со студенческими работами здесь

Работа со строками
У меня есть есть структурные переменные и указатели на них, естественно. предположим struct...

Работа со строками
Есть код 0000000000400996 &lt;main&gt;: 400996: 55 push %rbp 400997: 48 89 e5 ...

Работа со строками
Не видит файл. using System; using System.Collections.Generic; using System.Linq; using...

Работа со строками
С клавиатуры вводится текст. Подсчитать и вывести на печать количество слов начинающихся с гласной,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru