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

Работа с текстовыми файлами неизвестног размера - C++

Восстановить пароль Регистрация
 
Carbon
0 / 0 / 0
Регистрация: 09.09.2009
Сообщений: 10
20.12.2009, 12:35     Работа с текстовыми файлами неизвестног размера #1
Поискал на форуме, но не нашел.
Вопрос таков, как считать с строку char* текст из файла. Находил примеры, которые работают через потоки - получалось считывать построчно, но длина считываемой строки была ограничена.

Есть ли работающий вариант. В гугле искал, находил примеры, которые компилились, но в ходе считывания возниакло исключение acces violation.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2009, 12:35     Работа с текстовыми файлами неизвестног размера
Посмотрите здесь:

Работа с текстовыми файлами C++
Работа с текстовыми файлами C++
Работа с текстовыми файлами C++
C++ Работа с текстовыми файлами
Работа с текстовыми файлами си++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.12.2009, 13:04     Работа с текстовыми файлами неизвестног размера #2
http://www.cplusplus.com/reference/string/getline/
считывает строку не ограниченного размера.
Carbon
0 / 0 / 0
Регистрация: 09.09.2009
Сообщений: 10
20.12.2009, 13:15  [ТС]     Работа с текстовыми файлами неизвестног размера #3
Цитата Сообщение от niXman Посмотреть сообщение
http://www.cplusplus.com/reference/string/getline/
считывает строку не ограниченного размера.
А из файла как?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.12.2009, 14:09     Работа с текстовыми файлами неизвестног размера #4
C++
1
infile.getline(); cin.getline(l, sizeof l);
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.12.2009, 14:11     Работа с текстовыми файлами неизвестног размера #5
Цитата Сообщение от Carbon Посмотреть сообщение
А из файла как?
а приведенный мною пример разве из космоса читает строку?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.12.2009, 14:25     Работа с текстовыми файлами неизвестног размера #6
они разные
строку char* текст из файла
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.12.2009, 14:43     Работа с текстовыми файлами неизвестног размера #7
Цитата Сообщение от accept Посмотреть сообщение
они разные
ах вот в чем дело а зачем в с++ использовать символьные массивы?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.12.2009, 01:46     Работа с текстовыми файлами неизвестног размера #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#include <iostream>
 
using namespace std;
 
int main(void)
{
    char *p;
    
    p = new char[100];
    
    cin.getline(p, 10, '.');
    
    cout << p << endl;
    
    delete [] p;
    
    return 0;
}
а для string как ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2009, 02:20     Работа с текстовыми файлами неизвестног размера
Еще ссылки по теме:

C++ Работа с текстовыми файлами
C++ Работа с текстовыми файлами
C++ Работа с текстовыми файлами

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

Или воспользуйтесь поиском по форуму:
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
21.12.2009, 02:20     Работа с текстовыми файлами неизвестног размера #9
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
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    FILE *ifp;
    int i, c, maxline = 512;
    char *line;
 
    if( (ifp = fopen("in.txt", "r")) == NULL) {
        perror("fopen");
        return 1;
    }
 
    line = (char *) malloc(maxline);
    for(i = 0; (c = getc(ifp)) != EOF; i++) {
        if(i >= maxline-1) {
            maxline *= 2;
            line = (char *) realloc(line, maxline);
        }
        line[i] = c;
    }
    line[i] = '\0';
    fclose(ifp);
 
    printf("file:\n%s\n", line);
    free(line);
    return 0;
}
Yandex
Объявления
21.12.2009, 02:20     Работа с текстовыми файлами неизвестног размера
Ответ Создать тему
Опции темы

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