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

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

Войти
Регистрация
Восстановить пароль
 
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
#1

Работа с файлами. Вопрос. - C++

20.07.2010, 20:35. Просмотров 709. Ответов 11
Метки нет (Все метки)

Пытаюсь вывести результат работы программы из файла на экран, но str2 всегда после f.read(str2, 80);
выводит первоочередное значение. Программа делает следующее: ввод 2356, вывод 3265. Так вот, str2 равен 2356 после вывода на экран. В связи с чем это связано и как разрешить эту ситуацию?

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
int main(int argc, char* argv[])
{
    int i;
    char ch1, ch2, str[80], str2[80];
    
    cout<<"Enter the string: ";
    cin.get(str,79);
 
    fstream f("reverse.txt", ios::in|ios::out|ios::binary);
 
    if(!f.is_open())
    {
        cout<<"File opening error!"<<endl;
        return 1;
    }
 
    f.write(str,strlen(str));
 
    for (i = 0; !f.eof(); i+=2)
    {
        f.seekg(i, ios::beg);
 
        if (!f.good()) return 1;
 
        f.get(ch1);
 
        if (f.eof()) continue;
 
        if (!f.good()) return 1;
 
        f.get(ch2);
 
        if (f.eof()) continue;
 
        if (!f.good()) return 1;
 
        f.seekg(i, ios::beg);
 
        if (!f.good()) return 1;
 
        f.put(ch2);
 
        if (!f.good()) return 1;
 
        f.put(ch1);
 
        if (!f.good()) return 1;
    }
    
    
    
 
    //f.seekg(0,ios::beg);
 
    f.read(str2, 80);
 
    //str[21] = '\0';
 
    cout<<str<<endl;
    
    f.close();
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2010, 20:35     Работа с файлами. Вопрос.
Посмотрите здесь:

Вопрос по работе с файлами - C++
Пока i-=2 не вставил, выводила пустую строку в результате. Почему так? Что за 2 знака перед eof() мешали? int main(int argc, char*...

Маленький вопрос по работе с файлами - C++
очень глупый к тому же) есть FILE * f=fopen(filename,&quot;r&quot;); FILE* F; как мне присвоить*F=*f? заранее спасибо)

Вопрос по работе с файлами в Visual Studio - C++
Написал программу для работы с файлом в Visual Studio. Iostream подключил. Но такие вот привычные записи, как, например, ifstream...

Работа с файлами - C++
помогите пжл написать программу для удаления энтеров из файла txt

Работа с файлами в C++ - C++
Как можно просто создать файл средствами C++? Я делаю так: ofstream out(&quot;output.txt&quot;); out.close(); И вообще, можете...

Работа с файлами - C++
В радиоателье хранятся квитанции о сданных в ремонт телевизорах. Каждая квитанция содержит марку телевизора, дату приемки в ремонт,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,826
Завершенные тесты: 2
21.07.2010, 06:52     Работа с файлами. Вопрос. #2
В конце кода:
C++
1
cout<<str2<<endl;
По внимательнее будьте.

Предлагаю вариант по-проще:
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int i=0;
    char str[80], temp;
 
    cout<<"Enter the string: ";
    cin.get(str,79);
    
    while( (str[i]!=0) && (str[i+1]!=0))
    {
        temp=str[i];
        str[i]=str[i+1];
        str[i+1]=temp;
        i+=2;
    }
    
    cout << str << endl;
    
    return 0;
 
}
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
21.07.2010, 18:55  [ТС]     Работа с файлами. Вопрос. #3
Да, исправил, но! Выводит введённую строку - необработанную. Ввожу 2245, вывод: 2245.
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,826
Завершенные тесты: 2
21.07.2010, 19:00     Работа с файлами. Вопрос. #4
Вы уверены? У меня и мой и Ваш вариант выводит правильно.
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
21.07.2010, 19:02  [ТС]     Работа с файлами. Вопрос. #5
Enter the string: 2345
╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠
2345
Press any key to continue

Выше приведён вывод
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,826
Завершенные тесты: 2
21.07.2010, 19:05     Работа с файлами. Вопрос. #6
Хмм... Странно. А откуда крякозябы после Enter the string? С каким кодом это запускается, моим или Вашим? Если Вашим - то чем вам не устраивает мой?
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
21.07.2010, 19:09  [ТС]     Работа с файлами. Вопрос. #7
Хочется, чтобы мой заработал как полагается Только вот не могу понять, стираю всё в файле, ввожу обычные цифры, по логике после чтения из файла, строка содержит исправленную версию содержимого... да ещё откуда-то странные знаки...
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
21.07.2010, 19:19     Работа с файлами. Вопрос. #8
Я не понимаю как оно вообще у вас работает... Принцип работы можно? Ибо write - запись в файл. read - чтение из файла. Двоичного соотв.

Напишите пожалуйста задание И каким макаром вы пытаетесь сделать так, чтобы оно заработало. Вы вводите фразу в файл или как?
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
21.07.2010, 19:38  [ТС]     Работа с файлами. Вопрос. #9
Lavroff, весь кода представлен в самом начале, и что получается в результате, там тоже описано
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
21.07.2010, 19:47     Работа с файлами. Вопрос. #10
alexsvk, Я и сам видел, что получается в результате... На вопросы ответить можете, если просите помощи?
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
21.07.2010, 20:05  [ТС]     Работа с файлами. Вопрос. #11
Lavroff, так у Вас вопросы странные, честное слово. Принцип работы написан в программе: цикл идёт до конца файла с шагом 2 с применением ф-ции seekg. Задание написано (что делает програма, есть число 2345, она записывает 3254). А что как ввожу, - опять же, посмотрите код (Евгений М. - ведь у него не возникло подобных вопросов). Вывожу в файл, читаю из файла. Что значит "каким макаром работает"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.07.2010, 01:39     Работа с файлами. Вопрос.
Еще ссылки по теме:

Работа с файлами. - C++
В файле некоторое количество целых чисел. Написать программу которая находит наибольшее, наименьшее значение, и вычисляет среднее...

Работа с файлами - C++
Помогите с программкой,пожалуйста.С файлами на С++ никогда не работала, поэтому пришлось в быстрых темпах осваивать самой. ...

Работа с файлами на С++ - C++
Здравствуйте ! Написал код программы, что-то на подобии базы данных библиотеки. Осталось только добавить запись и считывание данных с файла...

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


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

Или воспользуйтесь поиском по форуму:
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
22.07.2010, 01:39     Работа с файлами. Вопрос. #12
alexsvk, Ммм... Извиняюсь. Что-то с головой не то было. Я просто не понимаю зачем столько наворотов в этом коде, когда можно просто использовать алгоритм reverse для класса string или strrev для char*... Собственно, удаляюсь, ибо разобраться в работе кода не получается. Пишет он в файл верно... Читает - нет. Извиняюсь за лишние сообщения.
Yandex
Объявления
22.07.2010, 01:39     Работа с файлами. Вопрос.
Ответ Создать тему
Опции темы

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