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

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

Восстановить пароль Регистрация
 
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
20.07.2010, 20:35     Работа с файлами. Вопрос. #1
Пытаюсь вывести результат работы программы из файла на экран, но 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++ Работа с файлами.
C++ Вопрос по работе с файлами
C++ Работа с файлами
C++ Маленький вопрос по работе с файлами
Работа с файлами в C++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 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.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 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

Выше приведён вывод
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 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
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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++ Вопрос по работе с файлами в Visual Studio
Работа с файлами C++

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

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

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