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

Считывание из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ в чем ошибка? http://www.cyberforum.ru/cpp-beginners/thread860967.html
Дано целое позитивное число n. Составить алгоритм вычисления суммы В чем ошибка в коде?#include <iostream> #include <conio.h> #include <math.h> #include <locale.h> using namespace std; //главная функция программы, с нее начинается выполнение int main()
C++ Задание на создание классов Дорогие коллеги! Помогите новичку разобраться с этим заданием! Задание на создание классов Данное задание предполагает создать базовый класс фигуры, указанный в задании класс и в нем реализовать заданную функцию. Приложение создается с графическим интерфейсом и реализует создание нескольких объектов заданного класса и тестирование заданной функции. Нужно: Разработать класс сектора Sector и... http://www.cyberforum.ru/cpp-beginners/thread860963.html
C++ Приостановка выполнения программы
Подскажите пожалуйста, можно ли в си как-нибудь реализовать приостановку выполнения программы на несколько секунд? Нужно что-то вроде system("pause"); только не до нажатия enter а на заданное мной время?
Возвращение значения функции C++
Как сделать отдельно функцию, чтобы она возвращала в основную функцию значение sum? Помогите пожалуйста! #include <stdio.h> #include <stdlib.h> int main(){ int number,sum=0; printf("Enter the natural Number: "); scanf("%d",&number);
C++ Карточная игра.Стек на основе массива http://www.cyberforum.ru/cpp-beginners/thread860905.html
Пишу карточную игру. Нужно создать стек на основе массива для карт.Всего 52 карты. Все одной масти. стек вроде написала,а вот дальше не знаю как сделать static array <int>^ C = gcnew array <int>(52); int top; public:
C++ Подсчитать сумму цифр числа, находящихся на нечетных позициях Всем добрый день..помогите решить 6 задач .ничего не понимаю в этом языке поэтому где можно и нужно пишите пожалуйста комментарии по ходу кода..чтоб было более менее понятно и я смог объяснить преподу что и как..что использовал как работает и тд..вот и сами задачи..спасибо заранее за каждую решенную задачу..я Вам очень благодарен!! 1)Подсчитать суммц цифр числа, находящихся на нечетных позициях. подробнее

Показать сообщение отдельно
Why so seriouS
 Аватар для Why so seriouS
44 / 44 / 1
Регистрация: 12.03.2013
Сообщений: 167
10.05.2013, 20:24     Считывание из файла
Всем привет! Есть вот такая проблема: при считывании данных из файла в объект ниоткуда берутся лишние данные. В чем может быть проблема? Вот пример файла:
1 1 1
2 2 2
А вот что получается когда считываю файл:
1 1 1
2 2 2
2 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
void output(Toys &T)
{
    ifstream in("1.txt");
    char ch;
    while((ch = in.get()) != EOF)
    {
        in.unget();
        in >> T;
        cout << T;
    }
    in.close();
}
Вот полный код:
Toys.h
Кликните здесь для просмотра всего текста
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
#ifndef _TOYS_H_
#define _TOYS_H_
 
#include <iostream>
#include <fstream>
 
using namespace std;
 
class Toys
{
    friend ostream& operator<<(ostream& output,const Toys& T)
    {
        output << T.name << " ";
        output << T.vartist << " ";
        output << T.vikovi_mechi << endl;
 
        return output;
    }
    friend istream& operator>>(istream& intput, Toys& T)
    {
        intput >> T.name;
        intput >> T.vartist;
        intput >> T.vikovi_mechi;
 
        return intput;
    }
    friend ifstream& operator>>(ifstream& intput, Toys& T)
    {
        intput >> T.name;
        intput >> T.vartist;
        intput >> T.vikovi_mechi;
 
        return intput;
    }
    friend ofstream& operator<<(ofstream& output, Toys& T)
    {
        output << T.name << " ";
        output << T.vartist << " ";
        output << T.vikovi_mechi << endl;;
 
        return output;
    }
public:
    bool vart(int tmp)
    {
        if(vartist <= tmp && vikovi_mechi <= 5) return true;
        return false;
    }
    char* getName(){return name;}
    int getVik(){return vikovi_mechi;}
private:
    char name[10];
    int vartist;
    int vikovi_mechi;
};
 
#endif

main.cpp
Кликните здесь для просмотра всего текста
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include <conio.h>
#include <Windows.h>
#include "Toys.h"
 
int menu();
void input(Toys&);
void output(Toys&);
void Show_name(Toys&);
void dozapus(Toys&);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    system("color 0F");
    int key = 0;
    Toys T;
    while(true)
    {
        key = menu();
        system("cls");
        if(key == 0)
        {
            input(T);
        }
        if(key == 1)
        {
            output(T);
            system("pause>0");
        }
        if(key == 2)
        {
            Show_name(T);
            system("pause>0");
        }
        if(key == 3)
        {
            dozapus(T);
            system("pause>0");
        }
        if(key == 4)
        {
            break;
        }
    }
    return 0;
}
void dozapus(Toys &T)
{
    ofstream out("1.txt",ios::app);
    cin>>T;
    out<<T;
    out.close();
}
void Show_name(Toys &T)
{
    ifstream in("1.txt");
    char ch;
    int tmp = 2;
    while((ch = in.get()) != EOF)
    {
        in.unget();
        in >> T;
        if(T.vart(tmp)) cout << T.getName();
    }
    in.close();
}
void output(Toys &T)
{
    ifstream in("1.txt");
    char ch;
    while((ch = in.get()) != EOF)
    {
        in.unget();
        in >> T;
        cout << T;
    }
    in.close();
}
void input(Toys &T)
{
    ofstream out("1.txt");
    int tmp;
    cin>>tmp;
    while(tmp)
    {
        cin>>T;
        out<<T;
        tmp--;
    }
    out.close();
}
int menu()
{
    int key = 0;
    int code;
    do
    {
        system("cls");
        key = (key+5)%5;
 
        if(key==0) cout<<"=> Ввести дані."<<endl;
        else cout<<"   Ввести дані."<<endl;
 
        if(key==1) cout<<"=> Вивести дані."<<endl;
        else cout<<"   Вивести дані."<<endl;
 
        if(key==2) cout<<"=> Редагувати дані."<<endl;
        else cout<<"   Редагувати дані."<<endl;
 
        if(key==3) cout<<"=> Дозаписати дані."<<endl;
        else cout<<"   Дозаписати дані."<<endl;
 
        if(key==4) cout<<"=> Вихід."<<endl;
        else cout<<"   Вихід."<<endl;
 
        code = getch();
 
        if(code == 80) key++;
        if(code == 72) key--;
    }while(code != 13);
 
    return key;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru