Форум программистов, компьютерный форум 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() работы не принимает). Прожка такая:...
Найти K-ю цифру в строке натуральных чисел C++
Сразу о главном: дано натуральное K. Найти K-ю цифру в строке натуральных чисел 123456789101112131415.... Что с этим счастьем делать, ума не приложу((( Помогите, пожалуйста, если кто может.
C++ Программа на С http://www.cyberforum.ru/cpp-beginners/thread18057.html
Написать программу, подсчитывающую число прожитых Вами дней. Программа должна предложить Вам ввести дату вашего рождения, текущую дату и выдать сообщение, что Вы живете такой-то день. я это...
C++ Возможно ли в одном case'е проверить, является ли символ буквой латинского алфавита? помогите,плз разобраться с вопросиком. возможно ли в одном case'е проверить является ли символ буквой латинского алфавита? т.е. сделать аналогично этому: if ((a>='a') && (a<='z')) ? если... подробнее

Показать сообщение отдельно
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
12.12.2008, 07:58
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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru