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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Why so seriouS
44 / 44 / 1
Регистрация: 12.03.2013
Сообщений: 167
#1

Работа с fstream - C++

14.03.2013, 20:18. Просмотров 610. Ответов 15
Метки нет (Все метки)

Допустим у нас есть такие данные в файле:
100 - long: ilafj iwnvwj bve bvjere*/g*-er/hg h rh gnedrfgve
и имеем простой класс
C++
1
2
3
4
5
6
7
class A
{
private:
  int a;
  char b[10];
  char c[300];
};
И как мне в переменную a записать 100
в переменную b записать long
в перемене c записать ilafj iwnvwj bve bvjere*/g*-er/hg h rh gnedrfgve
Как это реализовать????
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2013, 20:18     Работа с fstream
Посмотрите здесь:

Работа с fstream - C++
Вопрос такой: какие методы есть в fstream (если конечно есть) для того, чтобы удалить файл? Мне надо именно через fstream. system("del...

Работа с fstream - C++
Здорова! Создал класс для записи и чтения файла через операцию , но почему то он работает не так как нужно. #include <iostream> ...

Работа с Fstream - C++
Нужна программа которая выводит элементы записанные в файле в консоль. Прикол в том что нужно это сделать без указания количества элементов...

fstream работа с файлами - C++
Помогите написать прогу или хотя бы алгоритм размещения текста в несколько столбцов! У меня идей вообще никаких нету! В работе с файлами...

Работа с классом fstream.h - C++
Всем добрый день. Возникла небольшая проблемка. Открываю файл с помощью класса fstream читаю данные, а перевести курсор на начало файла...

Работа с библиотекой <fstream> - C++
Задание: Задан массив в файле в котором указана размерность и сам массив 4 * 4, нужно считать эту матрицу, обработать ее и вывести...

Не перезаписывается файл. Работа с fstream - C++
Есть такой код std::fstream settingFile; Poco::Util::Application&amp; app = Poco::Util::Application::instance(); std::string...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 20:46     Работа с fstream #2
Кто и для чего создавал это файл?
Why so seriouS
44 / 44 / 1
Регистрация: 12.03.2013
Сообщений: 167
14.03.2013, 20:55  [ТС]     Работа с fstream #3
Файл уже создан и открыт для чтения.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 20:57     Работа с fstream #4
Откуда он взялся? Сами записывали в него данные?
Why so seriouS
44 / 44 / 1
Регистрация: 12.03.2013
Сообщений: 167
14.03.2013, 21:00  [ТС]     Работа с fstream #5
Файл создал я, и сам записал в него данные.

Добавлено через 1 минуту
Я - всмысле не программой, а просто человеком
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 21:04     Работа с fstream #6
Цитата Сообщение от Why so seriouS Посмотреть сообщение
Допустим у нас есть такие данные в файле:
От этого "допустим" очень многое зависит. Код делается под определённый формат записи данных в файле. Делается под определённую задачу. Поэтому не стоит выдумывать некий произвольный файл.

Добавлено через 1 минуту
Цитата Сообщение от Why so seriouS Посмотреть сообщение
Файл создал я, и сам записал в него данные.
Цель?

Добавлено через 2 минуты
Если хотите записывать в файл одно число и две строки, а потом читать их в объект своего класса, то записывайте так, чтобы потом можно было легко это сделать. Например, через пробел, или каждое поле в отдельной строке.
Why so seriouS
44 / 44 / 1
Регистрация: 12.03.2013
Сообщений: 167
14.03.2013, 21:05  [ТС]     Работа с fstream #7
Он делится на 3 части: первая это целое число, после него следует пробел тере и снова пробел (их считывать не нужно), затем какое-то слово без пробелов до двоеточия, после двоеточия следует пробел и потом какие-то символы пробиламы (их нужно считывать пока не будет признаки перехода на новую строку)

Добавлено через 46 секунд
Цитата Сообщение от alsav22 Посмотреть сообщение
Цель?
Чтобы из этого файла считывать данные в массив объектов.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 21:11     Работа с fstream #8
Цитата Сообщение от Why so seriouS Посмотреть сообщение
Чтобы из этого файла считывать данные в массив объектов.
А если так записать в файл, то считывать уже нельзя, что-ли, будет?
100
long
ilafj iwnvwj bve bvjere*/g*-er/hg h rh gnedrfgve
Why so seriouS
44 / 44 / 1
Регистрация: 12.03.2013
Сообщений: 167
14.03.2013, 21:13  [ТС]     Работа с fstream #9
Наверное нужно будет, но мне дали конкретно входные данные.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 21:15     Работа с fstream #10
Вот эта тарабарщина и есть конкретные входные данные?
100 - long: ilafj iwnvwj bve bvjere*/g*-er/hg h rh gnedrfgve
Или это уже вы придумали исходя из задания? Само задание можно узнать?
Why so seriouS
44 / 44 / 1
Регистрация: 12.03.2013
Сообщений: 167
14.03.2013, 21:19  [ТС]     Работа с fstream #11
Задача уже прозвучала, записать из файла в поля класса данные. Вот пример данных содержащихся в файле:
Работа с fstream
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
14.03.2013, 21:25     Работа с fstream #12
Протестите:
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
#include <iostream>
#include <fstream>
#include <cstring>
class A
{
private:
          int a;
          char b[10];
          char c[300];
public:
           std::ifstream f;
          A()
          {
              a = 0;
              memset(b,0,10);
              memset(c,0,300);
              f.open("text.txt");
         }
         void getdata()
         {
                f>>a;
                        f>>b>>b;
                b[strlen(b)-1] = '\0';
                f.getline(c-1,300);  
         }
         void show()
         {
                std::cout<<a<<'\n'<<b<<'\n'<<c;  
         }
};
 
int main()
{
     A obj;
     obj.getdata();
     obj.show();
     return 0;
}
Why so seriouS
44 / 44 / 1
Регистрация: 12.03.2013
Сообщений: 167
14.03.2013, 21:31  [ТС]     Работа с fstream #13
Цитата Сообщение от BumerangSP Посмотреть сообщение
f>>b>>b;
* * * * * * * * b[strlen(b)-1] = '\0';
* * * * * * * * f.getline(c-1,300);
А что здесь происходит, зачем два раза считывать в b?
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
14.03.2013, 22:03     Работа с fstream #14
Первый раз он считает тире, нам оно не нужно, поэтому читаем во-второй раз, перезаписывая это тире.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 22:07     Работа с fstream #15
В файле:
100 - kernel: aaaa aaaa aaaa aaaa aaaa
200 - crond: dddd dddd dddd dddd ddd
100 - kernel: aaaa aaaa aaaa aaaa aaaa
200 - crond: dddd dddd dddd dddd ddd
100 - kernel: aaaa aaaa aaaa aaaa aaaa
200 - crond: dddd dddd dddd dddd ddd

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
#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
#include <Windows.h>
 
using namespace std;
 
class A
{
private:
  int a;
  string b;
  string c;
 
public :
    friend ifstream& operator>>(ifstream &in, A &obj)
    {
        in >> obj.a;
        in >> obj.b >> obj.b;
        obj.b.erase(obj.b.size() - 1, 1);
        in.get();
        getline(in, obj.c);
        return in;
    }
 
    void show()
    {
        cout << a << '\n' << b << '\n' << c << endl;
    }
};
 
int main()
{ 
    
    ifstream in("1.txt");
 
    while (true)
    {
        A a;
        in >> a;
        if (in.eof()) break;
        a.show();
    }
    
    system("pause");
    return 0;
}
Миниатюры
Работа с fstream  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2013, 22:47     Работа с fstream
Еще ссылки по теме:

Работа с файлом типа fstream - C++
Пишем несложный код: fstream file(&quot;Test.txt&quot;,ios_base::in|ios_base::app); int cnt = 0; while (cnt &lt; 3) { cerr &lt;&lt;...

Fstream в классах - C++
Проблема заключается в том, что я не могу использовать fsream в классе, ибо выдаёт ошибку. Код и текст ошибки ниже. Помогите пожалуйста (мб...

Класс fstream - C++
Дан файл, содержащий несколько строк. В новый файл переписать строки данного, вставляя символ ‘!’ после каждой строки, содержащей не более...

Хитрый fstream - C++
Привет всем! Вот есть код, казалось бы без ошибок... #include &lt;windows.h&gt; #include &lt;fstream&gt; #include &lt;vector&gt; #include...

Класс fstream - C++
Здравствуйте, Уважаемые форумчане ! Есть код: //Дан файл, содержащий несколько строк. Найти максимальную длину строки и вывести в...


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 22:47     Работа с fstream #16
#include <Windows.h> не нужен...
Yandex
Объявления
14.03.2013, 22:47     Работа с fstream
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru