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
Форумы портала PHP.SU :: Версия для печати :: Входной и выходной потоки
Форумы портала PHP.SU » » Программирование на C++ » Входной и выходной потоки

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

1. Ejas Tower - 21 Сентября, 2011 - 15:03:00 - перейти к сообщению
Здравствуйте, Уважаемые форумчане!
Я для общего развития изучаю 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?
2. OrmaJever - 21 Сентября, 2011 - 15:16:53 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1. char a;
  2. while(cin >> a) cout << a;
3. Ejas Tower - 21 Сентября, 2011 - 15:23:41 - перейти к сообщению
А можно делать так:

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.  


И позволит ли мне это вводить строки, содержание пробельные символы?
4. OrmaJever - 21 Сентября, 2011 - 15:45:25 - перейти к сообщению
ну тогда getline нужно
CODE (htmlphp):
скопировать код в буфер обмена
  1.     string i;
  2.     getline(cin, i);
  3.     cout << i;

только нужно подключить <string>
5. Ejas Tower - 21 Сентября, 2011 - 15:51:23 - перейти к сообщению
Спасибо за помощь! Попробую!

 

Powered by ExBB FM 1.0 RC1