Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/28: Рейтинг темы: голосов - 28, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 9
1

Функции ifstream , ofstream. Исправить

25.06.2012, 03:12. Показов 5299. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите исправить код пжлст, не работает прога(
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string>
#include <fstream>
#include <Windows.h>
using namespace std;
 
int main()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
int i;
char *a=new char[255],*b=new char[255],c;
ifstream f1("f.txt" , ios::in);
ofstream f2("g.txt" , ios::out);
ofstream f3("f.txt" , ios::out|ios::trunc);
while (!f1.eof())
{
f1.getline(a, strlen(a));
cout<<a;
}
cout<<"Введенная строка:"<<endl;
for(i=0;i<strlen(a);i++)
{
cout<<a[i];
}
cout<<endl<<endl<<"Хотите ввести другую строку? (введите 'y', если да) ";
cin>>c;
if (c=='y')
{
cout<<"Введите строку:"<<endl<<endl;
cin.ignore(256,'\c');
cin.getline( a, strlen(a));
OemToChar(a,a);
f3<<a;
}
cout<<"Нажмите любую хнопку=)"<<endl;
getch();
cout<<"Обратная строка:"<<endl;
for (int j = 0 , i = strlen(a)-1 ; j < strlen(a) , i >= 0 ; j++ , i-- )
{
    b[j]=a[i];
    cout<<a[i];
}
f2<<b;
cout<<endl;
f1.close();
f2.close();
f3.close();
cout<<endl<<"Данные успешно сохранены";
getch();
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2012, 03:12
Ответы с готовыми решениями:

ifstream ofstream
как работают данные файловые операции, объясните пожалуйста куда происходит запись ена жёстком...

Перегрузка ifstream и ofstream?
Есть класс //test.h cass test { private: int i; string st; public:

ifstream/ofstream/fstream
#include &lt;fstream&gt; fstream autosave; autosave.open(&quot;...autosave.txt&quot;); char x; autosave...

C++ файлы ifstream/ofstream
Доброе время суток нужна небольшая помощь с записью/считыванием из файла вообщем при считывание из...

12
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2012, 05:29 2
Так работает, но нужно, чтобы пред первым запуском существовал файл f.txt со строкой.
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 <conio.h>
#include <stdio.h>
#include <string>
#include <fstream>
#include <Windows.h>
using namespace std;
 
int main()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
int i;
char *a = new char[255];
char *b = new char[255];
char c;
 
ifstream f1("f.txt" , ios::in); 
ofstream f2("g.txt" , ios::out); 
 
while (!f1.eof())
{
    f1.getline(a, strlen(a));
    cout << a;
}
cout << "\nВведенная строка:" << endl;
for(i = 0; i < strlen(a); i++)
{
    cout<<a[i];
}
cout << endl << endl << "Хотите ввести другую строку? (введите 'y', если да) ";
cin >> c;
cin.get();
if (c == 'y')
{
    ofstream f3("f.txt" , ios::out|ios::trunc);
    cout << "Введите строку:" << endl << endl;
    //cin.ignore(256,'\c'); // непонятно зачем.
    cin.getline(a, strlen(a));
    OemToChar(a, a);
    f3 << a;
    f3.close();
}
cout << "Нажмите любую хнопку=)" << endl;
getch();
cout << "Обратная строка:" << endl;
int j = 0; // чтобы добавить после цикла символ окончания строки.
for (i = strlen(a)-1; j < strlen(a), i >= 0; j++, i--) // в условии продолжения цикла непонятная запятая, но и так работает.
{
    b[j] = a[i];
    cout << a[i];
}
b[j] = '\0'; // добавляем окончание строки.
f2 << b;
cout << endl;
f1.close();
f2.close();
cout << endl << "Данные успешно сохранены";
getch();
return 0;
}
2
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 9
25.06.2012, 07:58  [ТС] 3
существует

Добавлено через 34 минуты
+ после запуска файл f.txt становится пустой, а файл j.txt заполняется так
"ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН ННННННННННННННННээээ««««««««юоюою"
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
25.06.2012, 09:16 4
Хм, что-то я в упор не вижу j.txt файл..

Подобная строчка возникает обычно из-за того, что у тебя либо не инициализирована строка, которую ты выводишь, либо нет нуль-символа в конце, но, судя по тому, что у тебя вся строчка из HHHHHH и вначале нет первоначальной строки, то то, что ты выводишь, не инициализирована.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2012, 17:08 5
Цитата Сообщение от Daedro Посмотреть сообщение
существует

Добавлено через 34 минуты
+ после запуска файл f.txt становится пустой, а файл j.txt заполняется так
"ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН ННННННННННННННННээээ««««««««юоюою"
Чей код пробуешь? Мой или свой? При каком варанте выбора: "Хотите ввести другую строку? (введите 'y', если да) "? Какой длины первая строка в файле f.txt?
0
3564 / 2711 / 347
Регистрация: 11.03.2009
Сообщений: 6,240
25.06.2012, 17:17 6
Цитата Сообщение от Daedro Посмотреть сообщение
f1.getline(a, strlen(a));
Ребятки, что по вашему делает данная функция?
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2012, 17:29 7
В моём коде нужно исправить 38 строку. Записать так: cin.getline(a, 255); , а то другая строка обрезается по длине первой.

Добавлено через 3 минуты
Цитата Сообщение от kazak Посмотреть сообщение
Ребятки, что по вашему делает данная функция?
Тем не менее, работает. Хотя правильно так: f1.getline(a, 255);
0
3564 / 2711 / 347
Регистрация: 11.03.2009
Сообщений: 6,240
25.06.2012, 17:31 8
Работает по счастливому стечению обстоятельств.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2012, 17:38 9
Кто-нибудь может объяснить смысл запятой, в условии продолжения цикла, в строке: 47 for (i = strlen(a)-1; j < strlen(a), i >= 0; j++, i--)

Добавлено через 1 минуту
Цитата Сообщение от kazak Посмотреть сообщение
Работает по счастливому стечению обстоятельств.
Не спорю. Исправлял только то, что не давало работать.
0
3564 / 2711 / 347
Регистрация: 11.03.2009
Сообщений: 6,240
25.06.2012, 17:40 10
Цитата Сообщение от alsav22 Посмотреть сообщение
Кто-нибудь может объяснить смысл запятой, в условии продолжения цикла, в строке
В условии не должно быть запятых. Если условий несколько, они должны объединяться логическими связками.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2012, 17:45 11
Цитата Сообщение от kazak Посмотреть сообщение
В условии не должно быть запятых. Если условий несколько, они должны объединяться логическими связками.
Почему компилятор не ругается? Почему работает? Как-то, компилятор эту запятую, всё-таки, понимает.
0
3564 / 2711 / 347
Регистрация: 11.03.2009
Сообщений: 6,240
25.06.2012, 17:56 12
Он не понимает, а просто берет результат последнего выражения.
1
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2012, 18:02 13
Цитата Сообщение от kazak Посмотреть сообщение
Он не понимает, а просто берет результат последнего выражения.
Да. Сейчас почитал об операторе запятая.
Тогда строку 47 нужно записать так: for (i = strlen(a) - 1; i >= 0; j++, i--), тем более, что длина строки в a и так учитывается при инициализации i.
0
25.06.2012, 18:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2012, 18:02
Помогаю со студенческими работами здесь

Работа с кириллицей в ofstream/ifstream
Как сохранять русские буквы в ofstream и выводить русские буквы в через ifstream ?

Сокращенная запись ifstream и ofstream
#include &lt;fstream&gt; using namespace std; int main() { fstream I(&quot;input.txt&quot;),...

ifstream, ofstream и объекты класса
Доброго времени суток, помогите пожалуйста разобраться. Есть некий класс: class Tr { public:...

Работа с потоками ofstream/ifstream
Добрый вечер! Помогите, пожалуйста, с задачей! Дан класс: class data { char str; //дата...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru