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

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

Войти
Регистрация
Восстановить пароль
 
Carbon
0 / 0 / 0
Регистрация: 09.09.2009
Сообщений: 10
#1

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

20.12.2009, 12:35. Просмотров 391. Ответов 8
Метки нет (Все метки)

Поискал на форуме, но не нашел.
Вопрос таков, как считать с строку char* текст из файла. Находил примеры, которые работают через потоки - получалось считывать построчно, но длина считываемой строки была ограничена.

Есть ли работающий вариант. В гугле искал, находил примеры, которые компилились, но в ходе считывания возниакло исключение acces violation.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
3134 / 1446 / 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
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.12.2009, 14:09     Работа с текстовыми файлами неизвестног размера #4
C++
1
infile.getline(); cin.getline(l, sizeof l);
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.12.2009, 14:11     Работа с текстовыми файлами неизвестног размера #5
Цитата Сообщение от Carbon Посмотреть сообщение
А из файла как?
а приведенный мною пример разве из космоса читает строку?
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.12.2009, 14:25     Работа с текстовыми файлами неизвестног размера #6
они разные
строку char* текст из файла
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.12.2009, 14:43     Работа с текстовыми файлами неизвестног размера #7
Цитата Сообщение от accept Посмотреть сообщение
они разные
ах вот в чем дело а зачем в с++ использовать символьные массивы?
accept
4819 / 3239 / 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++ Работа с текстовыми файлами
C++ Работа с текстовыми файлами
C++ Работа с текстовыми файлами

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

Или воспользуйтесь поиском по форуму:
Gravity
558 / 552 / 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     Работа с текстовыми файлами неизвестног размера
Ответ Создать тему
Опции темы

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