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

Работаем с потоками на C++ ofstream и ifstream - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
SuLLeN
 Аватар для SuLLeN
21 / 21 / 4
Регистрация: 27.12.2011
Сообщений: 767
27.10.2012, 19:11     Работаем с потоками на C++ ofstream и ifstream #1
Доброго времени суток!

Подскажите пожалуйста, как при использовании ofstream и ifstream переставить курсор в начало файла?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2012, 19:11     Работаем с потоками на C++ ofstream и ifstream
Посмотрите здесь:

C++ ifstream/ofstream/fstream
сокращенная запись ifstream и ofstream C++
C++ C++ файлы ifstream/ofstream
class/string/ifstream/ofstream C++
ifstream ofstream C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
 Аватар для Петррр
5916 / 3353 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
27.10.2012, 19:20     Работаем с потоками на C++ ofstream и ifstream #2
C++
1
input.seekg(0);
SuLLeN
 Аватар для SuLLeN
21 / 21 / 4
Регистрация: 27.12.2011
Сообщений: 767
28.10.2012, 09:01  [ТС]     Работаем с потоками на C++ ofstream и ifstream #3
Вот так вроде: outfile.seekp(0L);

Добавлено через 30 секунд
Спасибо

Добавлено через 10 минут
Как этот код переделать под ofstream, ifstream
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
 FILE *f,*f2;
    f2 = fopen("txt.txt", "wt");
    f = fopen("Student.db", "rt");
    char u[255];
    char y[255];
    long a[100];
    int o;
    fseek(f,0L,SEEK_SET);
    cout << "ГЉГ*ГЄГіГѕ ñòðîêó ГіГ¤Г*ëèòü: ";
    int nimb;
    cin >> nimb;
    
    for (int j=0;j<nimb;j++)
    {
         fgets(u,255,f);
         fprintf(f2, "%s", u);
    };
    fseek(f, a[n+1], SEEK_SET);                  
    o=i-n-1;  
    for (int j=0;j<o;j++)
    {
         fgets(u,255,f);
         fprintf(f2, "%s", u);
    };        
    fclose(f2);
    fclose(f);
                  
    i--;
    f2 = fopen("txt.txt", "rt");
    f = fopen("Student.db", "wt");
    for (int j=0;j<i;j++)
    {
         fgets(u,255,f2);
         fprintf(f,"%s", u);
    };
    fclose(f2);
    fclose(f);  
                                  
    for (int j=n;j<i;j++)
    {
         a[j]=a[j+1];
    };
Добавлено через 13 часов 25 минут
Ладно, если так лень...

Для
C++
1
fseek(f,0L,SEEK_SET);
равносильное действие это
C++
1
input.seekg(0);
Для
C++
1
2
3
4
5
for (int j=0;j<nimb;j++)
    {
         fgets(u,255,f);
         fprintf(f2, "%s", u);
    };
скорее всего
C++
1
2
3
while(!infile.eof()) {
     str += infile.get();
     outfile2.write(str.c_str(),str.size()); }
но тут у меня какая то странная ошибка....
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
28.10.2012, 09:14     Работаем с потоками на C++ ofstream и ifstream #4
Цитата Сообщение от SuLLeN Посмотреть сообщение
Как этот код переделать под ofstream, ifstream
Задача какая, переписать файл без указанной строки в другой?

Добавлено через 24 секунды
Я по коду не особо понял, если честно
SuLLeN
 Аватар для SuLLeN
21 / 21 / 4
Регистрация: 27.12.2011
Сообщений: 767
28.10.2012, 19:11  [ТС]     Работаем с потоками на C++ ofstream и ifstream #5
переписать построчно из одного файла в другой без той которую хотим "удалить".

Добавлено через 1 час 13 минут
Люди, помогите пожалуйста.

Добавлено через 19 минут
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
#include "mod.h"
 
using namespace std;
 
int main ()
{
    system("chcp 1251");
 
    ofstream outfile("Student.db"); // Создаем файл для записи
    ifstream infile;
    infile.open("Student.db"); // Открываем для чтения
    
    int i,n,numb;
    char variant,bel = ' ';
    sport* mas_struct=new sport[n]; // Массив для хранения данных
    
    cout << "Кол-во студентов: ";
    cin >> n;
    cout << endl;
    
    word(mas_struct,n); // Функция ввода данных о студентах
    
    cout << "Принятые данные:" << endl;
    ChangeString(mas_struct,n); // Функция вывода данных
    
    cout << "Нужно ли изменить данные? <Д/Н> ";
    cin >> variant;
    cout << endl;
    
    switch (variant) // Выбор дальнейших действий
    {
     case 'Д': ChangeNumber(mas_struct,n); // Функция изменения данных
               cout << "Принятые данные:" << endl;
               ChangeString(mas_struct,n); break;
     case 'д': ChangeNumber(mas_struct,n);
               cout << "Принятые данные:" << endl;
               ChangeString(mas_struct,n); break;
     case 'Н': break;
     case 'н': break;
     default: cout << "Не верная буква!";
    }
    
    for(i = 0; i < n; i++) // Запись в файл в виде строки
    {
     outfile << mas_struct[i].fio << bel << mas_struct[i].vid << bel << mas_struct[i].fak << bel << mas_struct[i].spc << bel << mas_struct[i].lvl << endl;
    }
    
    outfile.close(); // Закрытие файла
    
    cout << "Какую строку удалить: ";
    cin >> numb;
    
    // И где то тут должен быть обработчик для удаления "numb" строки.
    
    system("pause");
    return 0;
}
Добавлено через 7 часов 47 минут
Люююди! Помогите пожалуйста!
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
29.10.2012, 00:13     Работаем с потоками на C++ ofstream и ifstream #6
Цитата Сообщение от SuLLeN Посмотреть сообщение
переписать построчно из одного файла в другой без той которую хотим "удалить".
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
 
 
int main() {
   std::ifstream ifs("file");
   std::ofstream ofs("copy");
   std::size_t index;
 
   std::cout << "Какую строку удалить: ";
   std::cin >> index;
 
   std::string line;
   for (std::size_t i = 0; getline(ifs, line); ++i) {
      if (i != index) {
         ofs << line << std::endl;
      }
   }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2012, 06:23     Работаем с потоками на C++ ofstream и ifstream
Еще ссылки по теме:

Неправильно выполнение ifstream, ofstream C++
Перегрузка ifstream и ofstream? C++
Работа с потоками ofstream/ifstream C++

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

Или воспользуйтесь поиском по форуму:
SuLLeN
 Аватар для SuLLeN
21 / 21 / 4
Регистрация: 27.12.2011
Сообщений: 767
29.10.2012, 06:23  [ТС]     Работаем с потоками на C++ ofstream и ifstream #7
Спасибо! Очень помогли!
Yandex
Объявления
29.10.2012, 06:23     Работаем с потоками на C++ ofstream и ifstream
Ответ Создать тему
Опции темы

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