Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Входной и выходной потоки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Это нормально?
Ejas Tower
Отправлено: 21 Сентября, 2011 - 15:03:00
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Май 2011  
Откуда: Уфа


Помог: 0 раз(а)




Здравствуйте, Уважаемые форумчане!
Я для общего развития изучаю C++. Появился вопрос. Вот мой исходный код:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. #include <iostream>
  3. #include <clocale>
  4. #include <conio.h>
  5. using namespace std;
  6. int main() {
  7.     setlocale( LC_ALL , "Russian" );
  8.     short i = 0;
  9.     cout << "Введите длину строки: ";
  10.    cin >> i; //До этого момента у меня всё нормально. Иду дальше...
  11.     char *line = new char [ i ];
  12.     cin.getline( line , i );
  13. // Думаю, функция выше должна записать в переменную line
  14. // не более i символов ИЗ КЛАВИАТУРЫ, а оказывается, что в переменную line
  15. // попадает строка " Введённая Вами строка: "" ". А ведь я задумал записать в
  16. // переменную line строку, введённую из клавиатуры
  17.     cout << "Введённая Вами строка: " << line << ".";
  18.    delete [] line;
  19.    _getch();
  20.    return 0 ;
  21.  
  22. }
  23.  


Может кто поможет, а? Хм
Что здесь нужно исправить, чтобы заполучить строку, введённую из клавиатуры, а не из функции cin.getline() в переменную line?
 
 Top
OrmaJever
Отправлено: 21 Сентября, 2011 - 15:16:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. char a;
  2. while(cin >> a) cout << a;


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Ejas Tower
Отправлено: 21 Сентября, 2011 - 15:23:41
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Май 2011  
Откуда: Уфа


Помог: 0 раз(а)




А можно делать так:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. char a;
  3. short count = 0;
  4. while(cin >> a) {
  5.     if ( count >= i ) break;
  6.     cout << a;
  7.    count++;
  8. }
  9.  


И позволит ли мне это вводить строки, содержание пробельные символы?

(Отредактировано автором: 21 Сентября, 2011 - 15:32:45)

 
 Top
OrmaJever
Отправлено: 21 Сентября, 2011 - 15:45:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




ну тогда getline нужно
CODE (htmlphp):
скопировать код в буфер обмена
  1.     string i;
  2.     getline(cin, i);
  3.     cout << i;

только нужно подключить <string>


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Ejas Tower
Отправлено: 21 Сентября, 2011 - 15:51:23
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Май 2011  
Откуда: Уфа


Помог: 0 раз(а)




Спасибо за помощь! Попробую!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на C++ »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB