0 / 0 / 0
Регистрация: 23.06.2013
Сообщений: 11
1

Классы, чтение из файла

03.05.2016, 23:42. Показов 386. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прошу помощи!При считывания первого слова в каждой строке в surname[0].stroka_surname запишется первое слово в surname[2].stroka_surname второе,но при считывания 2 слова в каждой строке то в initial[0].stroka_initial запишется каждое 2 слово с каждой строки хотя надо чтобы в initial[0].stroka_initial записалось 2 слово 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <cstring>
#include<io.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
class surname_subscriber{
public:char stroka_surname[50];
};
 
class initial_subscriber{
public:char stroka_initial[3];
 
};
 
class phone_number_subscriber{
public:char stroka_phone[10];
};
 
int menu(){//Ìåíþ ïðîãðàìì
    int choice;
    cout<<"\nMenu\n1.Вывисти справочник\n2.Поиск по номеру телефона\n3.Поиск по инициалам\n4.Выход\nPlease make your choice: ";
    cin>>choice;
    return choice;
}
 
int main(int argc, char** argv){
    setlocale(LC_ALL, "Russian");
    FILE *fp;
    char initial_search[2];
    char phone_search[10];
    int choice,i=0,j=1;
    
    surname_subscriber surname[10];
    initial_subscriber initial[10];
    phone_number_subscriber phone_number[10];
        while(j=1){
        choice=menu();
        switch(choice){
            case 1:
                fp=fopen("Phone_directory.txt", "r");
                if(fp == NULL ) {//Ïðîâåðêà íà ñóùåñòâîâàíèå ôàéëà
                    cout<<"Файл не найден.\n";
                    getch();
                    exit(0);    
                }else{cout<<"Файл открыт!\n";}
                    cout<<"\nФамилия   \tИнициалы   \tНомер телефона\n";
                    i=0;
                    //while (fscanf (fp, "%s%*c%s%*c%s", surname[i].stroka_surname, initial[i].stroka_initial, phone_number[i].stroka_phone) != EOF){
                        
                        while(!feof(fp)){
                        fscanf (fp, "%s%s%s", surname[i].stroka_surname, initial[i].stroka_initial, phone_number[i].stroka_phone);
                        cout<<surname[i].stroka_surname<<"   \t "<<initial[i].stroka_initial<<"   \t\t "<<phone_number[i].stroka_phone<<"   \t\t "<<phone_number[i].stroka_phone<<'\n';
                        i++;
                    }
                    for (int w=0;w <i;w++){
                            cout<<surname[w].stroka_surname<<"   \t "<<initial[w].stroka_initial<<"   \t\t "<<phone_number[w].stroka_phone<<'\n';
                        }
                
                    break;
            case 2:
                    cout<<"\nВведите номер телефона(10 цифр): ";
                    cin>>phone_search;
                    for (int i=0;i<10;i++){
                        cout<<phone_number[i].stroka_phone<<" \n";
                        if(phone_number[i].stroka_phone==phone_search){
                            cout<<"\nФамилия   \tИнициалы   \tНомер телефона\n"; 
                            cout<<surname[i].stroka_surname<<"   \t "<<initial[i].stroka_initial<<"   \t\t "<<phone_number[i].stroka_phone<<'\n';
                        }
                    }           
                    break;
            case 3:
                    cout<<"\nÂâåäèòå èíèöèàëû(÷åðåç òî÷êó): ";
                        cout<<"\n"<<initial[0].stroka_initial<<"\n";
                    //cout<<initial_search;
                    for (int q=0;q<10;q++){
                        if(initial[q].stroka_initial==initial_search){
                            cout<<"\nФамилия   \tИнициалы   \tНомер телефона\n"; 
                            cout<<surname[q].stroka_surname<<"   \t "<<initial[q].stroka_initial<<"   \t\t "<<phone_number[q].stroka_phone<<'\n';
                        }
                    }
                     
                    break;
            case 4:exit(0);break;
        }
    }
        //getch(); 
        return 0;
 
}
Добавлено через 14 минут
Пример текста для считывания:
Кравцов И.Н 1016426574
Галич В.Н 2026426774
Кузькова И.В 3036426274
Суворов А.А 4046426574
Пушкин С.А 5056426874
Сердечный С.С 6066423374
Ключников И.Л 7076426374
Ульянов У.Н 8086428374
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2016, 23:42
Ответы с готовыми решениями:

Как заменить чтение строки из консоли на чтение текстового файла?
основное задание: найти частоту суффикса (например, &quot;ing&quot;) в текстовом документе. в...

Чтение чисел из файла. Чтение после конца потока невозможно
Товарищи, помогите. В Pascal'e я не силен, так что не бейте меня ногами, но есть задача: написать...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит...

Чтение заголовка PCX файла и чтение растровых данных PCX файла
Привет форумчане! Столкнулся с такой проблемой. Нужно считать заголовок PCX файла и растровые...

1
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
04.05.2016, 07:21 2
Мало 3 и 10. Увеличь массивы в классах.
0
04.05.2016, 07:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2016, 07:21
Помогаю со студенческими работами здесь

Чтение бинарного файла - чтение первых 9 байт
Есть код, который читает первые 9 байт бинарного файла(заголовок записи) void...

Переделать в коде чтение из файла в чтение с клавиатуры
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен за помощь! //файл...

Чтение файла CSV и чтение из Table View
Здравствуйте, задача считать столбцы и строки excel в TextEdit. Прошу помощи в реализиции. ...

Чтение из файла. Повторное чтение файла
Добрый день. Необходимо реализовать в программе функцию повторного чтения данных из файла, в случае...

Создание файла с массивом и чтение этого файла обратно используя ShareActionProvider
Есть созданный массив, после нажатия на кнопку он должен вносится в файл, а потом передать этот...

Внешняя сортировка бинарного файла (чтение после конца файла невозможно)
Помогите отладить программу, не вижу, что здесь можно сделать. Похоже, курсор файла где-то в коде...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru