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

работа с файлами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как правильно сделать декларацию класса видимой во всём проекте и всех его модулях? http://www.cyberforum.ru/cpp-beginners/thread350604.html
Здравствуйте. Имеется класс декларированный в одном модуле (файле), а нужно использовать его функции-члены в другом. Есть общий .h файл. Как правильно сделать декларацию класса видимой во всём проекте и всех его модулях? Заранее благодарен.
C++ Сортироввка пузырьком. Есть прога: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <iostream> #include <conio.h> using namespace std; //--------------------------------------------------------------------------- http://www.cyberforum.ru/cpp-beginners/thread350600.html
C++ _block_type_is_valid при вызове delete()
код для генерации случайного графа #define m 3 //Число входящих и исходящих ребер. #define N 200 //Минимально требуемое число вершин в графе. using namespace std; class node { public:
C++ програмный поиск файла!
народ помогите пожалуйста)мне надо написать код чтобы можно было найти какой либо файл на жестком.. как это можно осуществить на c++?
C++ Вычислить формулу http://www.cyberforum.ru/cpp-beginners/thread350578.html
\frac{{x}^{k}}{k!} Нужно расписать, чтобы не было переполнения
C++ Сравнение результатов двух математических выражений. Напишите программу для расчета с двумя формулами. Сначала нужно подготовить тестовые примеры использования второго Формула рассчитывается на калькуляторе (результаты первой формулы должны быть такими же, как и для второй). Чтобы использовать математических формул нужно включить#include <cmath> библиотеки. подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
12.09.2011, 16:45     работа с файлами
Цитата Сообщение от s92p Посмотреть сообщение
а блин.... короче
считывает текст из файла и выводит на экран только строки, не
содержащие двузначных чисел.
Вот код, файл данных и скриншот работы (всё написано на Си)
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
73
74
75
76
77
78
79
80
81
#include <windows.h>//malloc, system("pause");
#include <string.h> //strrchr, strtok
#include <stdio.h>  //i/o
 
bool IsTwoDigitsSubStr(char * s);//Проверка строки s на содержание двухзначных чисел
 
int main()
{
    long sLen;
    char * str, *buf;
    FILE * f = fopen("data.txt","rb+");
    if(!f)
        printf("Error open data.txt\r\n");
    else
    {
        //Опеределяем длинну файла
        fseek(f,0,SEEK_END);//курсор в конец файла
        sLen = ftell(f);//длина = позиция курсора
        fseek(f,0,SEEK_SET);//курсор в начало файла
 
        //считываем сразу весь файл в буфер
        if(!(str = (char *)malloc((sLen + 1)*sizeof(char))))
            printf("Allocation memory error\r\n");
        else
        {
            fread(str,sLen,1,f);
            str[sLen] = '\0';//Убрали мусор вконце строки
 
            if(str)
            {
                //Работаем со строкой от её конца
                buf = strrchr(str,'\n');
                while(buf)
                {
                    //Если строка не содержит двузначных чисел - выводим её
                    if(!IsTwoDigitsSubStr(buf + 1))
                        printf("%s\r\n",buf + 1);
                    str[sLen - strlen(buf) - 1] = '\0';//Исключаем из строки buf
                    buf = strrchr(str,'\n');
                    sLen = strlen(str);
                }
                if(str)//Вконце останется 1-ая строка
                if(!IsTwoDigitsSubStr(str))
                    printf("%s\r\n",str);
            }
        }
        fclose(f);
    }
    system("pause");//Останов программы до нажатия любой клавиши
    return 0;
}
 
bool IsTwoDigitsSubStr(char * s)
{
    bool bRet = false;
    long sLen;
    char * str;
    char * buf;
    char delim[] = " ;";//Возможніе разделители токенов - пробел и ';'
    if(s)
    {
        //В программе используем strtok которая обнуляет строку 
        //поэтому для анализа копируем строку
        sLen = strlen(s);
        str = (char *)malloc((sLen + 1)*sizeof(char));
        sprintf(str," %s",s);
        str[sLen] = '\0';
        buf = strtok(str,delim);
        while(buf)
        {
            if(strlen(buf) == 2)//В подстроке два символа
            if(isdigit(buf[0]) && isdigit(buf[1]))
                bRet = true;//Если оба символы строки цифры то значит buf - двузначное число
//          if(bRet)
//              break;//Если стркоа содержит хоть 1-но двузначное число прекращаем её разбор
            buf = strtok(NULL,delim);
        }
        //Чистить память после strtok не нужно str == NULL
    }
    return bRet;
}
Миниатюры
работа с файлами  
Вложения
Тип файла: txt data.txt (129 байт, 21 просмотров)
 
Текущее время: 02:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru