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

Функция для считывания строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ как в программе написать что последовательность задается пользователем в произвольном порядке http://www.cyberforum.ru/cpp-beginners/thread774694.html
как в программе написать что последовательность задается пользователем в произвольном порядке, если можно приведите часть прогрмаммы
C++ Все нулевые элементы матрицы заменить на единицу Условие: Все нулевые элементы заменить на единицу! Во второй строке у меня там изменённый масив но там выводит нули одни! Почему? #include <stdlib.h> #include <iostream.h> #include <conio.h>... http://www.cyberforum.ru/cpp-beginners/thread774687.html
C++ this необходим?
В шарпе я привык, что this используется только тогда, когда нужно добраться до эл-та, которого скрывает параметр. В С++ так же или лучше его все таки использовать всегда(прост во многих исходниках...
Считывание с текстового файла. Сортирование C++
С текстового файла считать последовательность записей, содержащих данные о книге: <Автор>, <Название книги>, <Год издания>, <Количество страниц>, <Стоимость>. Распечатать введенные данные в виде...
C++ Считывание с текстового файла. Сортировка http://www.cyberforum.ru/cpp-beginners/thread774662.html
С текстового файла считать последовательность записей, содержащих данные о книге: <Автор>, <Название книги>, <Год издания>, <Количество страниц>, <Стоимость>. Распечатать введенные данные в виде...
C++ Не меняется значение указателя Написал функцию для подсчёта количества подстрок. При вызове на строках, которые в main вместо 3 выдаёт ответ 4. На остальных строках ответ верный. Это связано с тем, что в цикле while в функции... подробнее

Показать сообщение отдельно
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277

Функция для считывания строки - C++

29.01.2013, 21:17. Просмотров 493. Ответов 1
Метки (Все метки)

Требуется написать функция для считывания строки, используя динамическое выделения памяти? Как это по лучше сделать подскажите? Было бы неплохо привести пример кода.

Добавлено через 24 минуты
Вот попробывал написать функцию для динамического считывания строки. Функция возвращает указатель, который надо будет потом во внешней функции delete[]. Скажите, пожалуйста, что в этой функции не так??? Как написать её получше и покомпактнее???

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
char * Read(void)
{
    char *str, *copyPtr;
    int count = 0;
    int size = 80;
    char ch;
        
    str = new char[size + 1];
    fflush(stdin);
    
    ch = cin.get();
    while(ch != '\n'){
        if(count == size){
            str[count] = 0;
            copyPtr = new char[size + 1];
            strcpy(copyPtr, str);
            delete []str;
 
            size *= 2;
            str = new char[size + 1];
            strcpy(str, copyPtr);
            delete []copyPtr;
        }
 
        str[count] = ch;
        count++;
        ch = cin.get();
    }
    
    str[count] = 0;
    return str;
}
Добавлено через 4 минуты
Вот немного переделал:

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
char * Read(void)
{
    const int MAX_STR = 2048;
    char *str, *copyPtr;
    int count = 0;
    int size = 80;
    char ch;
        
    str = new char[size + 1];
    fflush(stdin);
    
    ch = cin.get();
    while(ch != '\n')
    {
        if(count >= MAX_STR) 
            return NULL;
 
        if(count == size){
            str[count] = 0;
            copyPtr = new char[size + 1];
            strcpy(copyPtr, str);
            delete []str;
 
            size *= 2;
            str = new char[size + 1];
            strcpy(str, copyPtr);
            delete []copyPtr;
        }
 
        str[count] = ch;
        count++;
        ch = cin.get();
    }
    
    str[count] = 0;
    return str;
}
Добавлено через 16 минут
up...........

Добавлено через 14 минут
up....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru