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

Создание файла для записи и чтения, запись в файл данных - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Liv-pooL
1 / 1 / 0
Регистрация: 17.04.2011
Сообщений: 142
29.02.2012, 18:06     Создание файла для записи и чтения, запись в файл данных #1
Написать простейшую программу, которая для своей работы использует
системные вызовы функций и предоставляет следующие возможности:
− создание файла для записи и чтения, а также его удаление;
− запись в файл следующих данных: int, byte, short, long, float, double, char,
char[] (в файле должно быть не менее трёх строк), а затем считывание их и
вывод на экран.

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
#include <iostream>
#include <stdio.h>
using namespace std;
 
    int a1,a11;
    long int a2,a22;
    short int a3,a33;
    float a4,a44;
    double a5,a55;
    char a6,a66;
    char a7[10],a77[10];
 
void Vvod();
void ZapFail(FILE *f2);
void ChitFail(FILE *f2);
 
void main()
{
    Vvod();
 
    FILE *f2;
    f2=fopen("str2.txt","w");
    ZapFail(f2);
    ChitFail(f2);
} 
 
void Vvod()
{
    cout<<"Vvedite <int> : ";
    cin>>a1;
    cout<<"Vvedite <long> : ";
    cin>>a2;
    cout<<"Vvedite <short> : ";
    cin>>a3;
    cout<<"Vvedite <float>";
    cin>>a4;
    cout<<"Vvedite <double>";
    cin>>a5;
    cout<<"Vvedite <char>";
    cin>>a6;
    cout<<"Vvedite <char[10]>";
    cin>>a7[10];
}
 
void ZapFail(FILE *f2)
{
    fprintf(f2,"%d\n",a1);
    fprintf(f2,"%ld\n",a2);
    fprintf(f2,"%hd\n",a3);
    fprintf(f2,"%.3f\n",a4);
    fprintf(f2,"%.3lf\n",a5);
    fprintf(f2,"%c\n",a6);
    fprintf(f2,"%s\n",a7);
}
 
void ChitFail(FILE *f2)
{
        fscanf(f2,"%i",a11);
        cout<<"\n"<<a11<<"\n";
}
Помогите, плиз...
fprintf(f2,"%s\n",a7) не записывает в файл строку ее там не видно.
Подскажите как орнанизовать вывод данных обратно, я попробовал первый инт вывести, 0 выводит, а не число...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.02.2012, 18:06     Создание файла для записи и чтения, запись в файл данных
Посмотрите здесь:

C++ В программе реализовать возможность записи объектов в файл и чтения объектов из файла
Открытие файла для чтения/записи C++
Как передать файл в функцию для записи/чтения (разные функции) C++
Как открыть файл одновременно для чтения и для записи? C++
Как инициализировать дескриптор для записи и чтения файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
29.02.2012, 18:31     Создание файла для записи и чтения, запись в файл данных #2
Пробуй

C++
1
2
3
4
fprintf(f2,"%s\n",&a7);
 
fscanf(f2,"%i",&a11);
fscanf(f2,"%i",a7);
Liv-pooL
1 / 1 / 0
Регистрация: 17.04.2011
Сообщений: 142
29.02.2012, 19:19  [ТС]     Создание файла для записи и чтения, запись в файл данных #3
Записывает 1 символ со всего массива, а вывод се равно - 0..
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
29.02.2012, 19:59     Создание файла для записи и чтения, запись в файл данных #4
C++
1
cin>>a7[10];
это и есть запись одного символа т.е 10-го символа массива a7
Liv-pooL
1 / 1 / 0
Регистрация: 17.04.2011
Сообщений: 142
29.02.2012, 20:01  [ТС]     Создание файла для записи и чтения, запись в файл данных #5
Да, спасибо, тупанул.
А не подскажите как их теперь последовательно считать в переменные своих типов, я все перепробовал...
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
29.02.2012, 20:06     Создание файла для записи и чтения, запись в файл данных #6
А еще у тебя файл открыт только для записи f2=fopen("str2.txt","w");
Нужно после записи закрыть файл fclose(f2); и сного открыть для чтения.


C++
1
cin.getline(a7,255);
Liv-pooL
1 / 1 / 0
Регистрация: 17.04.2011
Сообщений: 142
29.02.2012, 20:36  [ТС]     Создание файла для записи и чтения, запись в файл данных #7
аааааа....
туплю.....

Добавлено через 7 минут
Открыл для чтения и записи, все равно не считывает даже первый элемент int...(((

Добавлено через 21 минуту
Говорю спасибо на все сообщения!!!
Вот что получилось)))
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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
using namespace std;
 
    int a1,a11;
    long int a2,a22;
    short int a3,a33;
    float a4,a44;
    double a5,a55;
    char a6,a66;
    char a7[5],a77[5];
 
void Vvod();
void ZapFail(FILE *f2);
void ChitFail(FILE *f2);
 
void main()
{
    Vvod();
 
    FILE *f2;
    f2=fopen("str2.txt","w");
    ZapFail(f2);
    fclose(f2);
    f2=fopen("str2.txt","r");
    ChitFail(f2);
} 
 
void Vvod()
{
    cout<<"Vvedite <int> : ";
    cin>>a1;
    cout<<"Vvedite <long> : ";
    cin>>a2;
    cout<<"Vvedite <short> : ";
    cin>>a3;
    cout<<"Vvedite <float> : ";
    cin>>a4;
    cout<<"Vvedite <double> : ";
    cin>>a5;
    cout<<"Vvedite <char> : ";
    cin>>a6;
    cout<<"Vvedite <char[5]> : ";
    for (int i=0;i<5;i++)
        cin>>a7[i];
}
 
void ZapFail(FILE *f2)
{
    fprintf(f2,"%d\n",a1);
    fprintf(f2,"%ld\n",a2);
    fprintf(f2,"%hd\n",a3);
    fprintf(f2,"%.3f\n",a4);
    fprintf(f2,"%.3lf\n",a5);
    fprintf(f2,"%c\n",a6);
    fprintf(f2,"%s",a7);
}
 
void ChitFail(FILE *f2)
{
        fscanf(f2,"%i",&a11);
        cout<<"\n"<<a11;
        fscanf(f2,"%i",&a22);
        cout<<"\n"<<a22;
        fscanf(f2,"%i",&a33);
        cout<<"\n"<<a33;
        fscanf(f2,"%f",&a44);
        cout<<"\n"<<a44;
        fscanf(f2,"%lf",&a55);
        cout<<"\n"<<a55;
        fscanf(f2,"%s",&a66);
        cout<<"\n"<<a66<<"\n";
        fscanf(f2,"%s",&a77);
        for (int i=0;i<strlen(a77);i++)
            cout<<a77[i];
        cout<<"\n";
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2012, 12:25     Создание файла для записи и чтения, запись в файл данных
Еще ссылки по теме:

Организовать запись и чтения из файла для 3 программ C++
Написать функции для чтения/записи отдельных бит для любой записи из данного набора C++
C++ Каким образом после чтения из файла, узнать позицию для чтения следующего куска байт

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

Или воспользуйтесь поиском по форуму:
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
01.03.2012, 12:25     Создание файла для записи и чтения, запись в файл данных #8
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
#include <iostream>
#include <stdio.h>
       int a1,a11;
        long int a2,a22;
        short int a3,a33;
        float a4,a44;
        double a5,a55;
        char a6,a66;
        char a7[10],a77[10];
//---------------------------------------------------------------------------
void Vvod()
{
        cout<<"Vvedite <int> : ";
        cin>>a1;
        сout<<"Vvedite <long> : ";
        cin>>a2;
        cout<<"Vvedite <short> : ";
        cin>>a3;
        cout<<"Vvedite <float>";
        cin>>a4;
        cout<<"Vvedite <double>";
        cin>>a5;
        cout<<"Vvedite <char>";
        cin>>a6;
        cout<<"Vvedite <char[10]>";
        cin>>a7;
}
//---------------------------------------------------------------------------
void ZapFail(FILE *f2)
{
  fprintf(f2,"%d \n",a1);
  fprintf(f2,"%ld \n",a2);
  fprintf(f2,"%hd \n",a3);
  fprintf(f2,"%.3f \n",a4);
  fprintf(f2,"%.3lf \n",a5);
  fprintf(f2,"%c \n",a6);
  fprintf(f2,"%s \n", &a7);
}
//---------------------------------------------------------------------------
void ChitFail(FILE *f2)
{
  fscanf(f2,"%i",&a11);
  cout<<"\n"<<a11;
  fscanf(f2,"%i",&a22);
  сout<<"\n"<<a22;
  fscanf(f2,"%i",&a33);
  cout<<"\n"<<a33;
  fscanf(f2,"%f",&a44);
  cout<<"\n"<<a44;
  fscanf(f2,"%lf",&a55);
  cout<<"\n"<<a55;
  fscanf(f2,"%s",&a66);
  cout<<"\n"<<a66;
  fscanf(f2,"%s",a77);
  cout<<"\n"<<a77;
}
//---------------------------------------------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{
    Vvod();
    FILE *f2;
 
    f2=fopen("str2.txt","w");
    ZapFail(f2);
    fclose(f2);
 
    f2=fopen("str2.txt","r");
    ChitFail(f2);
    fclose(f2);
}
И почему нельзя использовать <fstream> <iomanip> вместо fprint и fscan если уж ты используешь <iostream> ?
Yandex
Объявления
01.03.2012, 12:25     Создание файла для записи и чтения, запись в файл данных
Ответ Создать тему
Опции темы

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