Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Liv-pooL
1 / 1 / 0
Регистрация: 17.04.2011
Сообщений: 142
#1

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

29.02.2012, 18:06. Просмотров 2535. Ответов 7
Метки нет (Все метки)

Написать простейшую программу, которая для своей работы использует
системные вызовы функций и предоставляет следующие возможности:
− создание файла для записи и чтения, а также его удаление;
− запись в файл следующих данных: 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 выводит, а не число...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.02.2012, 18:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание файла для записи и чтения, запись в файл данных (C++):

Напишите функции записи данных в файл, чтения данных из файла - C++
Файл dаte.in содержит четырех значное число на каждой строке. Напишите функции записи данных в файл, чтения данных из файла. Напишите...

Открытие файла для чтения/записи - C++
Помогите реализовать открытие файла под компилятор g++ или DevC++ вечно ругается на std.. using namespace std; не помогает. как...

Как открыть файл одновременно для чтения и для записи? - C++
Делаю вот так, но ничего не получается.:( std::fstream inOutCredit(&quot;credit.dat&quot;, std::ios::ate | std::ios::binary); if...

Организовать запись и чтения из файла для 3 программ - C++
Добрый вечер.Помогите пожалуйста организовать запись и чтения из файла для 3 программ,я там где-как написал что знаю,но все равно не могу...

Как инициализировать дескриптор для записи и чтения файла - C++
Здорова! Написал программку для чтения из файла. Но чото при вызове ничего не происходит. #include &lt;iostream&gt; using std::cout; ...

Как создать один файл для чтения и записи одновременно? - C++
Пробовал перезапись, но содержимое файла терялось while (file1.hasNext()) { file2.write(file.nextInt() + &quot; &quot;); ...

7
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,047
Записей в блоге: 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);
1
Liv-pooL
1 / 1 / 0
Регистрация: 17.04.2011
Сообщений: 142
29.02.2012, 19:19  [ТС] #3
Записывает 1 символ со всего массива, а вывод се равно - 0..
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,047
Записей в блоге: 17
29.02.2012, 19:59 #4
C++
1
cin>>a7[10];
это и есть запись одного символа т.е 10-го символа массива a7
1
Liv-pooL
1 / 1 / 0
Регистрация: 17.04.2011
Сообщений: 142
29.02.2012, 20:01  [ТС] #5
Да, спасибо, тупанул.
А не подскажите как их теперь последовательно считать в переменные своих типов, я все перепробовал...
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,047
Записей в блоге: 17
29.02.2012, 20:06 #6
А еще у тебя файл открыт только для записи f2=fopen("str2.txt","w");
Нужно после записи закрыть файл fclose(f2); и сного открыть для чтения.


C++
1
cin.getline(a7,255);
1
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";
}
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,047
Записей в блоге: 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> ?
1
01.03.2012, 12:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2012, 12:25
Привет! Вот еще темы с ответами:

Можно ли открыть поток для чтения и записи файла одновременно? - C++
Можно ли открыть поток для чтения и записи одновременно? Этот код не работает: wchar_t temp; wstring wchars; ...

Как передать файл в функцию для записи/чтения (разные функции) - C++
Собственно сабж. Во первых есть вот такой блок в main: ofstream f1(&quot;F1.txt&quot;); cout&lt;&lt;&quot;Введите элементы в файл 1&quot;&lt;&lt;endl; for (i=0;...

В программе реализовать возможность записи объектов в файл и чтения объектов из файла - C++
Добрый день, помогите, пожалуйста! У меня есть программа: #include &lt;iostream&gt; #include &lt;locale.h&gt; using namespace std; class...

Написать функции для чтения/записи отдельных бит для любой записи из данного набора - C++
Начиная с адреса А в памяти МК находятся N записей длиной k бит каждая. Записи выровнены по границе слова. Написать функции для...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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