Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2010, 00:02   #1
SrgGld
Пользователь
 
Аватар для SrgGld
 
Регистрация: 23.10.2010
Сообщений: 17
По умолчанию Ввод произвольной строки в C++

Как в C++, считывать последовательность символов (как массив char) произвольной длины с помощью "cin>> "?

По моим предположениям: условие проверяет, не стал ли старый массив маловат для получаемой строки. Если маловат, то создаёт новый побольше, переносит элементы старого в него, уничтожает старый и называет этот новый массив по-старому.
Потом новый символ добавляется в свежий удлинённый массив.
Вот как написал я:

#include "stdafx.h"
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
char c,*s=NULL,*t=NULL;
int l=2;
s=new char[l];
int j;
for (int i=0;cin>>c;i++) {
cin>>c;
if (i>l-1) {
l++;
t=new char[l];
for (j=0;j<l-2;j++) t[j]=s[i];
delete s;
s=t;
t=NULL;
}
s[i]=c;
}
cout<<*s;
return 0;
}


Но программа зацикливается на считывании. Условие выполнения цикла cin>>c нагуглил где-то. Объясняется там так: цикл выполняется, пока считывание успешно. Программа будет посимвольно считывать входной поток (по умолчанию - ввод с клавиатуры), пока не встретит признак конца файла. Для того, чтобы сообщить программе о завершении файла при вводе с клавиатуры необходимо нажать клавиши Ctrl-d.

Может ошибки с указателями...
SrgGld вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файловый Ввод-вывод и строки coll3ctor Общие вопросы C/C++ 17 02.05.2010 11:02
ввод до конца строки. ssi Помощь студентам 0 27.01.2010 09:47
Посимвольный ввод строки Junk1E Общие вопросы C/C++ 8 14.12.2009 01:49
ввод строки! Татяна Паскаль, Turbo Pascal, PascalABC.NET 12 16.05.2009 17:53
Ввод строки с пробелами Сергей089 Помощь студентам 15 24.04.2009 23:01