Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2013, 13:40   #1
pupushecka
Новичок
Джуниор
 
Регистрация: 19.06.2013
Сообщений: 2
Вопрос подсчитать количество пробелов в файле

Всем приветик. Есть прога, которая вводит студентов, сохраняет их в файл и выводит на экран.
Помогите пожалуйста подсчитать колитество пробелов в файле.
заранее благодарна.
Код:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <fstream.h>
#include <math.h>
 
FILE *fl;
 
typedef struct
{
    char fio[30];
    double matem;
    double oaip;
    double english;
    double srb;
}TStudent;
 
TStudent stud[30]; //?????? ????????
char name[20];//??? ?????
int nst=0;//????? ????????? ????????
 
int menu();    //????
void spisok(); //?????? ??????
void resf();   //????????? ????????? ? ????
void resc();   //??????? ????????? ?? ?????
 
int main()
{
    while (true)
    {
        switch (menu())
        {
            
            case 1: spisok(); break; //?????? ??????
            case 2: resf(); break; //????????? ????????? ? ????
                        case 3: resc(); break; //??????? ????????? ?? ?????
                    case 4: return 0;
            default: "Viberite pravilno!";
        }
        puts("pres any key to continue");
        getch();
        system("cls"); 
}
} 
 
 
int menu()//????
{
    cout<<"viberite:"<<endl;
    cout<<"1.vvod studentov"<<endl;
    cout<<"2.sohranit rezultat v file"<<endl;
    cout<<"3.vivesti rezultat na ekran"<<endl;
    
 
    cout<<"4.Exit"<<endl;
    int i;
    cin>>i;
    return i;
}
 
void resc() //na ekran
{
    char fio[30];
    double matem;
    double oaip;
    double english;
    double srb;
 
    ifstream fin("ofile.txt", ios::in);
    
    fin.getline(fio, 30);
    fin >> matem >> oaip >> english>>srb;
    fin.ignore(1);
 
 for (int i=0;i<nst;i++)
 {
     if(srb >= 6.0)
 
         cout << fio << '\n' << matem << '\n' << oaip << '\n' << english << '\n'<< srb <<  "\n\n"; 
 
        fin.getline(fio, 30);
        fin >> matem >> oaip >> english>>srb;
        fin.ignore(1);
 
 }
    fin.close();
    system("pause");
}
 
void spisok () //?????? ??????
{
 
    cout<<"vvedite chislo studentov"<<endl;
    cin>>nst;
 
    for (int i=0;i<nst;i++)
    {
        cout<<"vvedite imya: ";
        cin>>stud[i].fio;
        cout<<"vvedite ocenki po matem.: ";
        cin>>stud[i].matem;
        cout<<"vvedite ocenku po oaip: ";
        cin>>stud[i].oaip;
        cout<<"vvedite ocenku po english: ";
        cin>>stud[i].english;
 
 
stud[i].srb=( (stud[i].matem)+(stud[i].oaip)+(stud[i].english) )/3;
 
    }
}
 
void resf()////sohran file
{
    ofstream fout("ofile.txt", ios::app);
    for (int i=0;i<nst;i++)
        {
        fout << stud[i].fio << endl << stud[i].english << endl
                << stud[i].matem << endl << stud[i].oaip << endl<< stud[i].srb << endl;
    }
}
или может у кого-нибудь есть простенький пример для подсчета пробелов в файле?
pupushecka вне форума Ответить с цитированием
Старый 19.06.2013, 13:47   #2
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

Читаете файл по символьно, попадается пробел - добавляеть 1 к счеткику и идете дальше.
RussDragon вне форума Ответить с цитированием
Старый 19.06.2013, 14:05   #3
pupushecka
Новичок
Джуниор
 
Регистрация: 19.06.2013
Сообщений: 2
По умолчанию

а МОЖЕТ БЫТЬ У ВАС ЕСТЬ КАКОЙ-НИБУДЬ ПРОСТОЙ ПРИМЕР?
pupushecka вне форума Ответить с цитированием
Старый 19.06.2013, 15:46   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
{
int cnt=0;
ifstream fin("ifile.txt", ios::app);
for(char c,fin>>c;!fin.eof();fin>>c){
 cnt+=(c==' ')?1:0;
}
}
Примерно так.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.06.2013, 15:46   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
{
int cnt=0;
ifstream fin("ifile.txt", ios::app);
for(char c,fin>>c;!fin.eof();fin>>c){
 cnt+=(c==' ')?1:0;
}
}
Примерно так.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.06.2013, 16:19   #6
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

Нда, Тернарные Выражения вообще не читабельны... Старые добрый if лучше...
RussDragon вне форума Ответить с цитированием
Старый 19.06.2013, 20:42   #7
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Код:
std::ifstream f("ifile.txt");
std::size_t cnt = std::count(std::istreambuf_iterator<char>(f), std::istreambuf_iterator<char>(), ' ');
Somebody вне форума Ответить с цитированием
Старый 19.06.2013, 20:45   #8
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Stilet всегда такие содержательные коды выдает....
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчитать количество цифр в символьной строке и напечатать все, кроме пробелов, знаков операций и пунктуации. множества Pascal программирование Помощь студентам 4 11.06.2013 09:24
Pascal.Подсчитать наибольшее количество идущих подряд пробелов. esa1 Помощь студентам 0 30.05.2013 17:22
Подсчитать количество запросов в log файле julettad Помощь студентам 2 17.05.2012 15:01
В текстовом файле подсчитать количество непустых строк. Программа на с++ Ann_93 Помощь студентам 1 28.04.2012 09:20
подсчитать количество элементов в файле целых чисел Aimet Паскаль, Turbo Pascal, PascalABC.NET 0 16.06.2011 20:11