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

Вывод рандомных данных в классе из текстового файла - C++

Восстановить пароль Регистрация
 
compl
1 / 1 / 0
Регистрация: 23.10.2012
Сообщений: 70
07.04.2013, 23:15     Вывод рандомных данных в классе из текстового файла #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
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
#pragma once
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
 
class Eng
{
private:
    char word[20];
    char translation[20];
public:
    Eng();
    ~Eng();
    Eng(char* w,char* t);
    Eng(const Eng&c);
    Eng& operator=(const Eng& c);
 
    void setWord(char* w);
    char* getWord();
    void setTranslation(char* t);
    char* getTranslation();
 
    friend ostream& operator<<(ostream& os,Eng& a);
    friend istream& operator>>(istream& os,Eng& a);
 
    int writeBin(ofstream&os)
    {
        os.write((char*)this,sizeof(*this));
        return os.bad();
    }
 
    int readBin(ifstream&is)
    {
        is.read((char*)this,sizeof(*this));
        return is.bad();
    }
};
 
 
 
 
#include "StdAfx.h"
#include "Eng.h"
 
Eng::Eng()
{
    word[0]='\0';
    translation[0]='\0';
}
 
Eng::~Eng()
{
}
 
Eng::Eng(char* w,char* t)
{
    strcpy(word,w);
    strcpy(translation,t);
}
 
Eng& Eng::operator=(const Eng&c)
{
    strcpy(word,c.word);
    strcpy(translation,c.translation);
    return* this;
}
 
Eng::Eng(const Eng&c)
{
    *this=c;
}
 
void Eng::setWord(char* w)
{
    strcpy(word,w);
}
char* Eng::getWord()
{
    return word;
}
 
void Eng::setTranslation(char* t)
{
    strcpy(translation,t);
}
char* Eng::getTranslation()
{
    return translation;
}
 
ostream& operator<<(ostream& os, Eng& a)
{
    return os<<a.word<<" "<<endl;
}
 
istream& operator>>(istream& os, Eng& a)
{
    return os>>a.translation;
}
 
 
 
 
#include "stdafx.h"
#include "Eng.h"
 
const int n=2000;
 
int _tmain(int argc, _TCHAR* argv[])
{
    Eng arr[n];
    ifstream in("text.txt");
    for(int i=0;i<n;i++)
        in>>arr[i];
    for(int i=0;i<n;i++)
        cout<<arr[i];
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2013, 23:15     Вывод рандомных данных в классе из текстового файла
Посмотрите здесь:

С++ Необходимо дописать значение в вывод текстового файла C++
C++ Вывод строки из текстового файла
C++ Работа с текстовыми файлами: Вывод из текстового файла
C++ Вывод на экран данные из текстового файла
Вывод данных из текстового фаила C++
Вывод слова из текстового файла состоящего из нескольих слов C++
Чтение данных из текстового файла C++
C++ Вывод карты из текстового файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
08.04.2013, 06:45     Вывод рандомных данных в классе из текстового файла #2
compl, вы при чтении из входного потока заносите данные в поле translation, а вот выводите word. В связи с этим у вас вывод будет как минимум пустой, хотя это undefined behaviour.
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
//...
ostream& operator<<(ostream& os, Eng& a)
{
   //return os<<a.word<<" "<<endl;
    return os << a.translation;
}
 
istream& operator>>(istream& os, Eng& a)
{
    std::fill(a.translation, a.translation + 20, '\0');
 
    return os >> a.translation;
}
//...
int main(int argc, char* argv[])
{
    Eng arr[n];
    ifstream in("text.txt");
    int i;
    for(i = 0; (i < n) && (in >> arr[i]); ++i) { ; }
 
    for(int j = 0; j < i; ++j)
        cout << arr[j] << endl;
 
    return 0;
}
P.S.: желательно контролировать выход за диапазон в 20 элементов
compl
1 / 1 / 0
Регистрация: 23.10.2012
Сообщений: 70
08.04.2013, 08:11  [ТС]     Вывод рандомных данных в классе из текстового файла #3
Спасибо, конечно. Но Вы немного меня не поняли. Я хочу выводить случайно, т.е. рандомно данные и текстового файла по одному, а не сразу всё. Т.е. по нажатию enter печатается какое то случайное слово из word.
Yandex
Объявления
08.04.2013, 08:11     Вывод рандомных данных в классе из текстового файла
Ответ Создать тему
Опции темы

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