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

Чтение исходных данных из текстового файла - C++

Восстановить пароль Регистрация
 
t1maaa
4 / 4 / 0
Регистрация: 07.01.2011
Сообщений: 15
08.03.2011, 18:53     Чтение исходных данных из текстового файла #1
Доброго времени суток.
В общем задача такова, переделать программу (задача исходной программы - получение исходных данных с клавиатуры, сортировка по алфавиту, и вывод только девушек-студенток), чтобы в качестве входных данных использовался текстовый файл, вместо данных с клавиатуры.
В файле, формат данных: 1 человек в 1 строке,например:
[QUOTE]
Иванов Иван Иванович М 19 2 // фамилия, имя, отчество, пол, возраст, курс соответственно
Иванова Юлия Ивановна Ж 17 1
[QUOTE]
Среда Visual Studio 2008/2010.
Дополнительные пожелания:Минимальное изменение программы, использование FILE *fopen (char *filename, char *type) - для открытия файла, fgets,fscanf - для чтения из файла.

Собственно сама программа:
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
#include <stdio.h>
#include <string.h>
#include <locale.h>
#include <iostream>
#include <windows.h>
 
#define n 100 //максимально числа фамилий
#define stp ""
 
using namespace std;
 
struct w
{
char Name[15]; //Поле имени в структуре
char Surname[15]; //фамилии
char Patronymic[15]; //Отчества
char Sex[2]; // Пола
int Age; // Возраста
int Course; // Номера курса
};
 
int main()
{
setlocale(LC_ALL, "Russian");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int i=0,a,k;
struct w Table[n], tmp[n];
puts("Введите фамилию: ");
while (strcmp(gets_s(Table[i].Surname),stp)!=0 && i<n) // ввод фамилий пока не встретится пустая строка(stp) или i<100 (см. #define)
{
    puts("Введите Имя: ");
    gets_s(Table[i].Name);
    puts("Введите отчество: ");
    gets_s(Table[i].Patronymic);
    puts("Введите пол (М или Ж): ");
    gets_s(Table[i].Sex);
    puts("Введите возраст: ");
    cin>>Table[i].Age;
    puts("Введите курс: ");
    cin>>Table[i].Course;
    while(getchar() !='\n');
    if(i<n)
        cout<<"Введите следующую фамилию: "<<endl;
    i++;
}
k=i; // k - кол-во введенных фамилий
for (int i=0; i<k-1; i++) //начало сортировки по алфавиту
{
    for (a=i+1; a<k; a++)
    {
        if  (strcmp(Table[i].Surname, Table[a].Surname)>0)
        {
            tmp[i]=Table[a];
            Table[a]=Table[i];
            Table[i]=tmp[i];
        }
    }
}// конец сортировки
puts("Cписок студенток в алфавитном порядке: ");
for (i=0; i<k; i++)
{
    if(strchr(Table[i].Sex, 'F')!=NULL || strchr(Table[i].Sex, 'f')!=NULL || strchr(Table[i].Sex, 'Ж')!=NULL ||strchr(Table[i].Sex, 'ж')!=NULL) //условие вывода только девушек(основная задача программы)
    {
        printf("Фамилия: %s\n Имя: %s\n Отчество: %s\n Пол: %s\n Возраст: %d \n Курс: %d \n", Table[i].Surname, Table[i].Name, Table[i].Patronymic, Table[i].Sex, Table[i].Age, Table[i].Course);
    }
}
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2011, 18:53     Чтение исходных данных из текстового файла
Посмотрите здесь:

C++ чтение с текстового файла
Чтение из текстового файла C++
Чтение текстового файла C++
чтение из текстового файла C++
Чтение из текстового файла C++
C++ Чтение из текстового файла
Чтение данных из текстового файла C++
C++ Чтение текстового файла и его данных в разные переменные

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 17:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru