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

Вывести из файла - C++

Восстановить пароль Регистрация
 
ВАваф
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 39
21.12.2013, 17:48     Вывести из файла #1
1) Есть список фамилий(который задается в файле). Нужно вывести мужские, женские фамилии и фамилии, по которым нельзя определить пол. В общем, программа написано(конечно, не все окончания возможные перебрал), но вот теперь не знаю, как вывести из документа, т.к. использую вектор для задачи, помогите, пожалуйста
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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <vector>
#include <string>
#include <clocale>
#include <windows.h>
#include <stdio.h>
#include <fstream>
#define FName "stroka.txt"
using namespace std;
int main ()
{setlocale(LC_ALL, "");
SetConsoleCP (1251);
SetConsoleOutputCP (1251);
vector<string> fam1;
vector<string> fam2;
vector<string> fam3;
std::vector<std::string> students; // Создание вектора из строк
std::string mesto = "";    // Буфер для ввода фамилии студента
/*std::cout << "Вводите фамилии студентов, "
              << "по окончанию ввода, введите пустую строку" << std::endl;
do {
        std::getline(std::cin, mesto);
        if (mesto.size() > 0) { setlocale(LC_ALL, "");           // Добавление элемента в конец вектора
            students.push_back(mesto);
        }
    } while (mesto != "");              
unsigned int vector_size = students.size();     // Сохраняем количество элементов вектора 
std::cout << "Фамилии:" << std::endl;
    for (int i = 0; i < vector_size; i++) {             // Вывод заполненного вектора на экран
        
        std::cout << students[i] <<"  "; 
    }*/
cout<<endl<<endl;
ifstream F1(FName,ios::in);
if (!F1) {cout <<"Нельзя открыть документ "<<FName;
_getch ();
return 1;
}
else
{int vector_size = students.size();
    for (int i = 0; i <students.size() ; i++)
        {F1>>students[i];
    cout <<setw(6)<<students[i];}
 
    for (int i=0;i<students.size();++i)
    {
        const char *x=students[i].c_str();
        for (int j=0;j<students[i].size();++j)
        {
            if (*(x+j+1)=='\0' && *(x+j)=='а') fam1.push_back(students[i]);
            else if(*(x+j+1)=='\0' && *(x+j)!='а' && *(x+j)!='о') fam2.push_back(students[i]);
            else if(*(x+j+1)=='\0' && *(x+j)=='о') fam3.push_back(students[i]);
        }
    }
    cout <<"Женские фамилии:"<<endl;
for (int i=0;i<fam1.size();++i)
{
cout<<fam1[i]<<" ";
}
cout<<endl<<"Мужские фамилии:"<<endl;
for(int i=0;i<fam2.size();++i)
{
cout<<fam2[i]<<" ";
}
cout<<endl<<"Нельзя определить пол:"<<endl;
for(int i=0;i<fam3.size();++i)
{
    cout<<fam3[i]<<" ";
}
}
F1.close ();
_getch ();
    return 0;
}
Вот что пытался сделать, но что-то не понимаю...

2) Структуры, тоже нужно бы вывести структуру из файла... Вроде как все написал - ничего не выводит, опять же эти вектора
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
82
83
84
85
86
87
88
89
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<conio.h>
#include <string>
#include <clocale>
#include <windows.h>
#include <iomanip>
#include <cstdio>
#include <stdio.h>
#include <fstream>
#define FName "nomer.txt"
#define N 10
using namespace std;
struct basa
{
int nomer;
int kod;              
int data;
int min;
int sum;
}s;
int main() 
{setlocale(LC_ALL, "");
vector <basa> p;
int nomer1=0,kod1=0,data1=0,min1=0,sum1=0,sh=1,d,n,k,chet=0;
/*while((cout<<"Введите номер телефона(база"<<sh<<"): ",cin>>nomer1) && (cout<<"Введите код города(база"<<sh<<"): ",cin>>kod1) && (cout<<"Введите дату разговора(база"<<sh<<"): ",cin>>data1) && (cout<<"Введите время разговора(база"<<sh<<"): ",cin>>min1) && (cout<<"Введите сумму к оплате(база"<<sh<<"): ",cin>>sum1))
{
    cout<<"Введите любую букву, чтобы закончить ввод данных. Если база не будет завершена, данные базы не будут рассматриваться программой."<<endl;
cout<<endl;
    s.nomer=nomer1;
s.kod=kod1;
s.data=data1;
s.min=min1;
s.sum=sum1;
p.push_back(s);
sh++;
}*/
ifstream F1(FName,ios::in);
if (!F1) {cout <<"Нельзя открыть файл "<<FName;
_getch ();
return 1;
}
else
{while (!F1.eof()) 
{
    F1>>s.nomer;
    F1>>s.kod;
    F1>>s.data;
    F1>>s.min;
    F1>>s.sum;
p.push_back(s);
    chet++;
}
for (int i=0;i<p.size();++i) cout<<endl<<"База №"<<i+1<<endl<<"Номер телефона: "<<p[i].nomer<<endl<<"Код города: "<<p[i].kod<<endl<<"Дата разговора: "<<p[i].data<<endl<<"Время разговора(в минутах): "<<p[i].min<<endl<<"Сумма к оплате: "<<p[i].sum<<endl;
cout<<endl;
cout<<endl;
cout<<"Введите начальную дату: ";
cin>>n;
cout<<"Введите конечную дату: ";
cin>> k;
cout<<"Дата с "<<n<<" числа до "<<k<<endl;
for (int i=0;i<p.size();++i)
{for (int j=n;j<=k;++j)
{
    if (j==p[i].data)
    {
        cout<<endl<<"В день "<<j<<" использовался номер из базы "<<i+1<<endl<<"Номер телефона: "<<p[i].nomer<<endl<<"Код города: "<<p[i].kod<<endl<<"Дата разговора: "<<p[i].data<<endl<<"Время разговора(в минутах): "<<p[i].min<<endl<<"Сумма к оплате: "<<p[i].sum<<endl;
    }
    else cout <<"В базе "<<i+1<<" не обнаружена дата "<<j<<endl;
}
}
cout<<endl;
cout<<"Введите дату: ";
cin>>d;
cout <<"День "<<d<<endl;
for (int i=0;i<p.size();++i)
    {
        if (d==p[i].data) 
        {
            cout<<endl<<"В этот день использовался номер из базы "<<i+1<<endl<<"Номер телефона: "<<p[i].nomer<<endl<<"Код города: "<<p[i].kod<<endl<<"Дата разговора: "<<p[i].data<<endl<<"Время разговора(в минутах): "<<p[i].min<<endl<<"Сумма к оплате: "<<p[i].sum<<endl;
        }
    else cout <<"В базе "<<i+1<<" нет похожей даты"<<endl;
}
}
F1.close();
_getch ();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2013, 17:48     Вывести из файла
Посмотрите здесь:

Открываются 2 текстовых файла, сложить построчно числа из 1 и 2 файла, сумму вывести в третий файл построчно C++
вывести из файла цитаты C++
Вывести K-й элемент файла C++
C++ Вывести числа из файла
C++ вывести из файла 1 и 6 элементы
Дано имя файла целых чисел. Найти количество элементов, содержащихся в данном файле. Если файла с таким именем не существует, то вывести –1 C++
Вывести на экран символы первого файла с позиций, указываемых числами из второго файла C++
Вывести данные из файла в таблицу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ВАваф
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 39
22.12.2013, 19:11  [ТС]     Вывести из файла #2
Структуру сделал, помогите с строками, пожалуйста, где же все програмеры?
Yandex
Объявления
22.12.2013, 19:11     Вывести из файла
Ответ Создать тему
Опции темы

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