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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.84
dyap
2 / 2 / 0
Регистрация: 20.09.2010
Сообщений: 58
#1

Открытие текстового файла как поток - C++

22.11.2010, 18:53. Просмотров 3173. Ответов 9
Метки нет (Все метки)

Тоесть у меня есть:
C++
1
2
3
4
5
FILE *out; 
out = fopen("output.txt", "w"); 
....
....
fputs(word, out);
А как это сделать через поток? Используя <fstream>

Добавлено через 21 минуту
Вроде как открыть файл для записи понял:
C++
1
ofstream out("output.txt");
А как записать в файл? ( мне строку нужно записать) fputs с потоками как я понял не работает.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2010, 18:53     Открытие текстового файла как поток
Посмотрите здесь:
C++ как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла?
Открытие текстового файла C++
C++ Как сбросить поток для чтения файла с начала?
Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде локальной переменной внутри функции. C++
Как считать с текстового файла? C++
C++ Как определить конец текстового файла?
Как считать информацию с текстового файла? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
besstiaa
94 / 94 / 7
Регистрация: 04.06.2010
Сообщений: 223
22.11.2010, 18:56     Открытие текстового файла как поток #2
C++
1
out << "Text";
Monte-Cristo
2787 / 1373 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
22.11.2010, 18:59     Открытие текстового файла как поток #3
C++
1
2
3
4
5
6
7
    int x = 5;
    const char* str = "Evil!"; 
 
    ofstream out("output.txt");
    out << x;
    out << str;
    out.close();
dyap
2 / 2 / 0
Регистрация: 20.09.2010
Сообщений: 58
22.11.2010, 19:02  [ТС]     Открытие текстового файла как поток #4
Попытался записать такми образом, но мне компилятор выдал ошибку: error C2088: <<: недопустимо для class
С чем это может быть связано?
Monte-Cristo
2787 / 1373 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
22.11.2010, 19:06     Открытие текстового файла как поток #5
dyap, с тем, что ты пытаешься, видимо, записать не базовый тип, а свой пользовательский класс. В таком случае необходимо перегрузить оператор << для своего класса.
dyap
2 / 2 / 0
Регистрация: 20.09.2010
Сообщений: 58
22.11.2010, 19:22  [ТС]     Открытие текстового файла как поток #6
Эм...А как перегрузить оператор <<?
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
22.11.2010, 19:37     Открытие текстового файла как поток #7
Цитата Сообщение от dyap Посмотреть сообщение
А как перегрузить оператор <<?
А покажите ваш класс.
dyap
2 / 2 / 0
Регистрация: 20.09.2010
Сообщений: 58
22.11.2010, 20:01  [ТС]     Открытие текстового файла как поток #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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
 
FILE *in;
//FILE *out;
 
FILE *sort;
char seps[] = " ,.!?\t\r\n";
 
bool isWordUpper (char *word){
    for(int x=0; x<strlen(word);x++){
        if(!isupper( word[x] )){
            return false;
        }
    }
    return true;
}
 
int compare( const void *arg1, const void *arg2 ){
    return strcmp( *(char**) arg1, *(char**) arg2 );
}
 
void main ()
{
    setlocale(LC_ALL, "Russian");
 
    in = fopen("input.txt", "r");
   // out = fopen("output.txt", "w");
    ifstream out("output.txt");
    sort = fopen("Out_sort.txt", "w");
 
    ofstream out("output.txt");
 
 
    char **words = new char*[2000];
    for (int i = 0; i < 2000; i++){
        words[i] = new char[200];
    }
 
    int n = 0; 
 
    char *str = (char*) malloc (200);
    char *str2 = (char*) malloc (200);
 
    if(in == NULL)    {    
        printf (" Файл не открывается\n");
        return;
    }
    if (feof(in)) {
        return;
    }
 
    
 
    while(fgets(str, 200, in) != NULL) {  
        strcpy(str2, str); 
 
        char *word = strtok( str, seps );
        if (word != NULL){
 
        int max = strlen(word);
 
        while( word != NULL ){
            if (strlen(word) > max){
                max = strlen(word);
            }
            word = strtok( NULL, seps );
        }
 
        word = strtok( str2, seps );
        while( word != NULL ){
            if (isWordUpper(word) && (strlen(word) == max)){
                //fputs(word, out);
                //fputs(" ", out);
                out<<word;
                out<<" ";
 
                strcpy(words[n], word);
 
                n++;
            }
 
            word = strtok( NULL, seps );
        }
 
        //fputs("\n", out);
        out<<"\n";
        }
    }
 
    qsort(words, n, sizeof(char *), compare );
 
    for (int i=0; i<n; i++){
        fputs(words[i],sort);
        fputs("\n",sort);
    }
 
    out.close();
    fclose(in);     
    fclose(sort);     
}
Вот программка, мне просто нужно сделать запись в файлы через потоки...
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
22.11.2010, 20:15     Открытие текстового файла как поток #9
Вот это:
C++
1
ifstream out("output.txt");
уберите.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2010, 20:22     Открытие текстового файла как поток
Еще ссылки по теме:
C++ Как перейти в начало текстового файла?
C++ Как поместить содержимое текстового файла в Edit?
C++ Объясните, как удалять строки из текстового файла?
Открытие файла. Как проверить существует ли файл не трогая содержимое C++
Как правильно реализовать чтение данных из текстового файла? C++

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

Или воспользуйтесь поиском по форуму:
dyap
2 / 2 / 0
Регистрация: 20.09.2010
Сообщений: 58
22.11.2010, 20:22  [ТС]     Открытие текстового файла как поток #10
Kastaneda,
Огромнейшее спасибо )) Надо быть внимательнее))
Yandex
Объявления
22.11.2010, 20:22     Открытие текстового файла как поток
Ответ Создать тему
Опции темы

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