Форум программистов, компьютерный форум 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
44 / 44 / 1
Регистрация: 12.03.2013
Сообщений: 167

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

10.05.2013, 20:24. Просмотров 316. Ответов 7
Метки (Все метки)

Всем привет! Есть вот такая проблема: при считывании данных из файла в объект ниоткуда берутся лишние данные. В чем может быть проблема? Вот пример файла:
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru