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

Вывод содержимого при работе с файлом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите найти ошибку в приведенном листинге http://www.cyberforum.ru/cpp-beginners/thread911202.html
#include "stdafx.h" #include <iostream> #include <fstream> #include <string> #include <conio.h> using namespace std; void main() { setlocale(0,"russian")
C++ СЛОВА (не все предложение) отобразить зеркально и записать строкой во второй файл Задача следующая: Имеется файл со строкой. Нужно СЛОВА (не все предложение) отобразить зеркально и записать строкой во второй файл. Как развернуть всю строку char (не используя файл я знаю), а как... http://www.cyberforum.ru/cpp-beginners/thread911181.html
В массив, упорядоченный по убыванию значений элементов, добавить новое число так, чтобы не нарушить упорядоченность C++
Имеется задача. В массив Х(N), N≤20, упорядоченный по убыванию значений элементов, добавить новое число так, чтобы не нарушить упорядоченность. Пожалуйста помогите решить!
C++ Найти и сохранить в строке те слова текста, которые образованы неубывающей последовательностью символов
Дана строка. Словом текста считается любая последовательность цифр; между соседними словами - не менее одного пробела, за последним словом – точка. Найти и сохранить в строке те слова текста, которые...
C++ Триангуляция многоугольника http://www.cyberforum.ru/cpp-beginners/thread911161.html
Добрый вечер. Ни у кого случайно нет алгоритма для триангуляции ПРОИЗВОЛЬНОГО многоугольника? Многоугольник задан количеством вершин и точками вершин в порядке обхода против часовой стрелки.
C++ Перебор массива и поиск повторяющихся чисел День добрый, подскажите пожалуйста, задача следующая, имеем массив {1,2,3,9,4,5,6,9,7,8,0}, тут девятка встречается два раза, необходимо обнулить элементы массива которые повторяются в нём, то бишь... подробнее

Показать сообщение отдельно
RidoTTi
1 / 1 / 0
Регистрация: 11.06.2012
Сообщений: 34
27.06.2013, 12:15  [ТС]
Цитата Сообщение от nxtech Посмотреть сообщение
Я к тому, что если файл пустой, то по нажатию 3 у вас все-равно выполняется вывод ФИО и прочей информации. Согласитесь это не правильно.
Ну это да, программа-набросок.. меня больше интересует как всё же выполнить те условия(по нажатию 3).

Добавлено через 2 часа 49 минут
Всё сделал. Может кому пригодится..
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// 111.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
struct infa
{
    int nomer;
    char tip[20];
    char punkt[20];
    int vr_ot, vr_pr;
} bf;
 
void show ()
{
cout <<"nomer: "<< bf.nomer << endl
<<"tip: "<< bf.tip << endl
<<"punkt: "<< bf.punkt << endl
<<"vremya ot: "<< bf.vr_ot << endl
<<"vremya pr: "<< bf.vr_pr << endl
<< "-------------------" << endl;
}   
 
void set ()
{
cout << "vvedite nomer: ";
cin >> bf.nomer;
cout << "vvedite tip: ";
cin >> bf.tip;
cout << "vvedite punkt: ";
cin >> bf.punkt;
cout << "vvedite vremya otpravleniya: ";
cin >> bf.vr_ot;
cout << "vvedite vremya pribitiya: ";
cin >> bf.vr_pr;
}
 
int main()
{
FILE *f;
if ( (f = fopen ("c:\\file.txt", "rb")) != 0 )               //создание чтение 
      f = fopen ("c:\\file.txt", "ab+");                     //окрыть добав
else 
      f = fopen ("c:\\file.txt", "wb+");                     // вывод
 
cout << "1 - zapishet infy\n2 - pokazat vsy infy\n3 - zadanie\n";
short int sel;
cin >> sel;
switch (sel)
    {
    case 1 : 
    {
        int count;
        cout << "Kol-vo zapiseu\? :";
        cin >> count;
        for (int i=0; i<count; i++)
        {
            set();
            fwrite (&bf, sizeof(infa), 1, f);   // запись / чтение  __что именно__, _размер_ вычисляем размер - сумму всех полей __кол-во раз, куда- в файл.
        }
    }; break;
 
    case 2 :
    {
        fseek (f, 0, SEEK_END);
        int fLen = ftell(f);
        fseek(f,0,SEEK_SET);
        for(int i=0;i<(fLen/sizeof(infa));i++){
            fread (&bf, sizeof (infa), 1, f);
            show ();
        }
    }; break;
 
    case 3 :
    {
        int nomer,p;
        int vr_ot, vr_pr;
        char *tip = new char;
        char *punkt= new char;
        cout<<"vvedite punkt: "; cin>>punkt; 
        cout<<"vvedite zhelaemoe vremya pribitiya: "; cin>>vr_pr; cout<<endl;
        fread(&bf, sizeof (infa), 1, f);
        while (feof(f) == 0)
        {
            fread(&bf, sizeof (infa), 1, f);
            if ( (strcmp(punkt, bf.punkt)==0) && (vr_pr < bf.vr_pr) )
            {
                nomer = bf.nomer; 
                tip = strcpy(tip,bf.tip);
                punkt = strcpy(punkt,bf.punkt);
                vr_ot = bf.vr_ot;
                vr_pr = bf.vr_pr;
            }    
        }
        cout <<"Nomer: "<< nomer << endl; 
        cout <<"Tip: "<< tip << endl;
        cout <<"Punkt: "<< punkt << endl;
        cout <<"Vremya otpravleniya: "<< vr_ot << endl;
        cout <<"Vremya pribitiya: "<< vr_pr <<endl;
    }; break;
    }
 
system ("PAUSE");
return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru