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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 18:24   #1
Antil
 
Регистрация: 01.11.2010
Сообщений: 7
По умолчанию Работа с текстовыми файлами. C++

Входной файл сохраняет следующую информацию по студентам:
<Фамилия>, <имя>, <отчество>, <год рождения>, <курс>, <пол>,
причем фамилия, имя и отчество имеют не более 12 символов, пол - указывается символами М и Ж, год рождения - целое из 4 цифр, курс - целое от 1 до 5. Данные по студентам отделяются знаком «;».
Необходимо написать программу, которая выводит наиболее распространенное мужское и женское имя;

С++
Вот фрагмент программы, который кое-как написал да и тот не работает.
Выручайте.
Код:
#include "conio.h"
#include "iostream"
#include "string.h"
using namespace std;
 
 
 
char  surname[13],name[13],otchestvo[13], year[5],course[2], sex[2];
int i,size,j,m=0;
FILE *F;
char str[1000];
int main()
{
F=fopen("laba4.txt","rt");
while(!feof(F))
{fgets(str, 1000, F);
cout<<str;}
 
 
 while(!feof(F)){
size=strlen(str);
for(i=0;i<size;i++)
{
 
        if(m==0)
        {
                if(str[i]!=';')
                        
        {
                surname[j++]=str[i];}
        else{m++;
        j=0;
        
        continue;
        }
        }
 
        if(m==1)
        {if(str[i]!=';')
        {name[j++]=str[i];}
        else{m++;
        j=0;
        continue;}}
 
        if(m==2)
        {if(str[i]!=';')
        {otchestvo[j++]=str[i];}
        else{m++;
        j=0;
        continue;}}
        if(m==3)
        {if(str[i]!=';')
        {year[j++]=str[i];}
        else{m++;
        j=0;
        continue;}}
 
 
        if(m==4)
        {if(str[i]!=';')
        {course[j++]=str[i];}
        else{m++;
        j=0;
        continue;}}
 
            if(m==5)
        {if(str[i]!=';')
        {sex[j++]=str[i];}
        else{m++;
        j=0;
        continue;}}
}
 
 
getch();
return 0;
 }
вот файл с которым я работал:

Smirnov;Vladimir;Andreevich;1991;3; M;
Ivanova;Anna;Nikolaevna;1989;4;F;
Kuznetsov;Maksim;Alekseevich;1992;2 ;M;
Popov;Vladislav;Victorovich;1991;3; M;
Lebedeva;Irina;Igorivna;1993;1;F;
Kozlova;Ekaterina;Antonovna;1989;4; F;
Novikov;Aleksandr;Semenovich;1985;5 ;M;
Morozova;Nataliya;Andreevna;1990;5; F;
Petrova;Anastasiya;Sergeevna;1992;2 ;F;
Fedorov;Pavel;Gogavich;1992;2;M;
Antil вне форума Ответить с цитированием
Старый 13.12.2010, 20:00   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вопрос на засыпку: Почему выбран вид текстового файла для хранения инфы? Почему не типизированный файл, где можно работать со структурами как здесь? :http://www.programmersforum.ru/showthread.php?t=105501
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовыми файлами OlegII Помощь студентам 6 08.12.2010 13:31
Работа с текстовыми файлами Fastah Помощь студентам 7 03.11.2010 18:06
Работа с текстовыми файлами Dareami Общие вопросы C/C++ 3 20.04.2010 10:21
Работа с текстовыми файлами Bytas Общие вопросы C/C++ 1 01.12.2009 22:39
Работа с текстовыми файлами DartMrakkk Общие вопросы Delphi 3 14.07.2007 16:52