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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
#1

перемещение указателя в потоке... - C++

20.04.2011, 23:22. Просмотров 2256. Ответов 7
Метки нет (Все метки)

почему при выводе финальном на экран выводится только последняя цифра...подскажите тему тольео начали учить сегодня?!

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
#include <iostream>
#include <fstream>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
 
 const int N=20, A=5, B=13;
 int a;
 
 srand(time(0));
 
 fstream f("rezult.dat",ios::out|ios::app|ios::binary);
 if(!f) cout<<"Ошибка";
 for(int i=0;i<N;i++){ // Запись данных в файл...
 a=A+rand()%(B-A+1);
 f.write((char*)&a,sizeof(a));
 cout<<a<<" ";
 }
 
 cout<<"\n_________________________________________________\n";
 
 f.seekg(0,ios::beg);
 f.seekp(0,ios::beg);
 
 while(!f.eof()){
 f.read((char *)&a, sizeof(a));
 if(a==7){
 a=-7;
 f.write((char *)&a,sizeof(a));
 }
 cout<<a<<" "; // Финальный вывод...
 }
 
}
Добавлено через 2 часа 55 минут
хотябы скажите я правильно использую
C++
1
2
 f.seekg(0,ios::beg);
 f.seekp(0,ios::beg);
чтоб файлы читались сначало?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2011, 23:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перемещение указателя в потоке... (C++):

Перевод указателя на N байт в файловом потоке - C++
Добрый день, помогите пожалуйста. Есть структура: struct Mystruct { char surname; // Фамилия char numberOfTestBook; //...

Перемещение указателя в начало файла - C++
Cчитываю файл посимвольно и вывожу информацию на экран, потом решил попробовать вывести информацию по строкам. Проблема в следующем, почему...

Перемещение указателя FILE* по файлу - C++
Здравствуйте. какой есть способ перемещать указатель по файлу по байтово вместо fgetc()? те у меня есть указатель на начало...

Почему увеличение указателя на sizeof(тип) не тождественно инкременту этого же указателя? - C++
Всем доброго дня.:) Можете обьяснить ,почему при инкриментировании указателя,его значение(адресс) увеличивается на 4 (размер int в...

Преобразование кода без указателя в код с использованием указателя - C++
Правильно ли выполнил? Исходный код без указателя #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt; using namespace...

Как сделать функцию от указателя на класс и указателя на метод? - C++
Не получается сделать функцию, параметрами которой являются указатель на класс и на метод. Обращаться к классу нужно именно по указателю,...

7
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
20.04.2011, 23:30 #2
довольно странная идея одновременно читать и писать в файл
0
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
20.04.2011, 23:44  [ТС] #3
ну посоветуйте тогда пожалуйста как решить бинарным способом...если это невозможно или неправильно..даже незнаю как сказать
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
20.04.2011, 23:55 #4
OLLEGATOR, сперва скажите, что вы хотите
0
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
21.04.2011, 00:00  [ТС] #5
надо заменить 7 на -7; используя бинарныйц метод...
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
21.04.2011, 00:02 #6
OLLEGATOR, заменить в файле? и что за бинарный метод?
0
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
21.04.2011, 00:02  [ТС] #7
вообщем ладно незнаю что он хотел именно зделал так ....скажите пайдёт или нет?!

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
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <string.h>
 
using namespace std;
 
int main()
{
 
    const int N=20, A=5, B=13;
    char *s=new char [N];
    int a,i;
 
    srand(time(0));
 
    fstream f("rezult.dat",ios::out);
    if(!f) cout<<"Ошибка";
 
    cout<<"Было: \n";
    for(i=0;i<N;i++){   // Запись данных в файл...
        a=A+rand()%(B-A+1);
        f.write((char*)&a,sizeof(a));
        s[i]=a;
        cout<<a<<" ";
    }
 
    cout<<"\nСтало:\n";
 
    f.open("rezult.dat",ios::out);
 
    for(i=0;i<N;i++){
 
        a=s[i];
 
        if(a==7) a=-7;
 
        f.write((char*)&a,sizeof(a));
 
        cout<<a<<" ";
    }
 
}
0
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
23.04.2011, 20:17  [ТС] #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
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <iomanip>
 
using namespace std;
 
int main()
{
 
    const int N=20,A=-1,B=9;
 
    fstream f("source",ios::out|ios::in|ios::trunc|ios::binary);
 
    if(!f) cout<<"Ошибка";
 
    srand(time(0));
 
    int a,i;
    for(i=0;i<N;i++){
        a=A+rand()%(B-A+1);
        cout<<setw(3)<<a;
        f.write((char*)&a,sizeof(a));
    }
    cout<<"\n";
 
    int n=f.tellp()/sizeof(a);
 
    for(i=0;i<n;i++){
        f.seekg(i*sizeof(a));
        f.read((char*)&a,sizeof(a));
 
        if(a==7){
            a=-7;
            f.seekp(i*sizeof(a));
            f.write((char*)&a,sizeof(a));
        }
 
        if(a==-7) cout<<"\033[41m";
        cout<<setw(3)<<a<<"\033[00m";
 
    }
 
}
Добавлено через 48 секунд
может кому пригодится
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2011, 20:17
Привет! Вот еще темы с ответами:

В чём отличие константного указателя и указателя на константу? - C++
int *const p1 и int const* p2 Объясните мне в чём тут отличие.

Не могу создать поток( Нужно чтобы функция запускается в потоке и работала там пока не закроем в потоке) - C++
хм.. не могу создать поток в c++ и направить туда. Нужно чтобы функция запускается в потоке и работала там пока не закроем в потоке.

Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... - C++
Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... как сделать...

Перезаписать память начиная с указателя Bitmap[1] элементами начиная с указателя Bitmap[0] - C++
Задан массив из 3 указателей Bitmap, по адресу Bitmap необходимо записать 480*640 элементов из массива Bitmap. В последнем цикле for выдает...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
23.04.2011, 20:17
Ответ Создать тему
Опции темы

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