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

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

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

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

20.04.2011, 23:22. Просмотров 2178. Ответов 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);
чтоб файлы читались сначало?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2011, 23:22     перемещение указателя в потоке...
Посмотрите здесь:

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

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

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

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

Передача указателя - C++
Здравствуйте! Форумчане, очень нужна помощь..:cry: В общем ситуация такова: написана программа, нужно переделать её так, чтобы в...

Разименование указателя - C++
Есть функция get_parametr,котрая в зависимости от переданного параметра,извлекает информацию,сохраняет в объекте string,адрес которого...

Объяснение указателя - C++
Объясните что означает double* b: void function(int a,double* b) И: double* b= new double Я так понял указатель выделяет...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
20.04.2011, 23:30     перемещение указателя в потоке... #2
довольно странная идея одновременно читать и писать в файл
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
20.04.2011, 23:44  [ТС]     перемещение указателя в потоке... #3
ну посоветуйте тогда пожалуйста как решить бинарным способом...если это невозможно или неправильно..даже незнаю как сказать
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
20.04.2011, 23:55     перемещение указателя в потоке... #4
OLLEGATOR, сперва скажите, что вы хотите
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
21.04.2011, 00:00  [ТС]     перемещение указателя в потоке... #5
надо заменить 7 на -7; используя бинарныйц метод...
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
21.04.2011, 00:02     перемещение указателя в потоке... #6
OLLEGATOR, заменить в файле? и что за бинарный метод?
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<<" ";
    }
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2011, 20:17     перемещение указателя в потоке...
Еще ссылки по теме:

Инициализация указателя - C++
Написал такой код: #include &lt;iostream&gt; using namespace std; int main() { int n=10; int* a=new int ;

Использование указателя this - C++
Здравствуйте. Помогите пожалуйста сделать такое приложение на С++: Создать класс массив, состоящий из 10 действительных чисел....

Размер указателя - C++
sizeof(void*);// Размер указателя на любой тип равен 8, почему так много? И можно ли как-нибудь узнать сколько под указатель выделено...

Сдвиг указателя - C++
Помогите ответить на вопрос: На сколько байт передвигается указатель при добавлении к нему(вычитании от него) числа 20? Определите...

Копирование указателя С++ - C++
Есть char *mydir он указывает на второй аргумент, эсли я дописую символы с помощью strcat то соответственно инфа меняеться. Как сделать...


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

Или воспользуйтесь поиском по форуму:
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 секунд
может кому пригодится
Yandex
Объявления
23.04.2011, 20:17     перемещение указателя в потоке...
Ответ Создать тему
Опции темы

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