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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Stror
1 / 1 / 0
Регистрация: 23.04.2012
Сообщений: 10
#1

Функция getline в условии while - C++

23.04.2012, 21:45. Просмотров 2001. Ответов 5
Метки нет (Все метки)

Здравствуйте! Перевожу код с c++ на c#. Но возникла проблема с условием цикла while

C++
1
2
while(getline(cin,S))
{...}
Почитал в интернетах про getline, написано, что считывает с определенными особенностями строку. Но здесь эта функция записана в условии цикла, как она может быть условием, вот это не могу понять.
Прошу вашей помощи.


полный код в c++:

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
38
39
40
41
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
 
string S;
long long D[37],l,maxi=0,idx,base;
bool ok;
 
int convert( char C ){
    if(C==' ') return 10000;
    else
    if(C<='9') return (int)(C-48)%10;
    else return (int)(C-55);
    }
 
int main(int argc, char *argv[])
{
 
    while(getline(cin,S)){
     idx=2;
     while(idx<37){
       l=0;
      while( l<S.length()){
          ok=false;
       while(l<S.length()&&(int)(convert(S[l]))<idx){ok=true; l++;}
           if(ok) D[idx]++;
           l++;
         }
         idx++;
    }
 
}
 for( int i=2;i<=36;i++ )
  if(D[i]>maxi){maxi=D[i];base=i;}
 
    cout<<base<<" "<<maxi<<endl;
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2012, 21:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция getline в условии while (C++):

Функция С++ getline() - C++
Здравствуйте! Скажите пожалуйста, каков смысл функции cin.getline(). Если не сложно,приведите пожалуйста пример.

Функция getline - C++
Добрый вечер. Очень долго пытался найти в чём проблема в работе программы-она выдавала немного не то значение,которые было необходимо.Ни...

Функция getline - C++
Делаю упражнение по С++ (консольное приложение). Необходимо считать строку, включая пробелы. Вот описание класса: class employee { ...

Функция cin.getline() - C++
Имеется часть кода: void EditName(Account &amp;acc) { delete acc.name; char nam; cout&lt;&lt;&quot;Введите новое имя: &quot;; ...

Функция getline и ifstream - C++
int main() { int i,c; char filename; char input_line; cout&lt;&lt;&quot;Enter a file name and press ENTER: &quot;; cin.getline(filename,80);...

функция getline() в dev_C++ - C++
Помогите пожалуйста, не могу разобраться с функцией getline() Пишу на dev_C++ и не понемаю смысл работы функции. Она читает, пока не...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
23.04.2012, 22:04 #2
Посмотрите тут. А вообще вот
Stror
1 / 1 / 0
Регистрация: 23.04.2012
Сообщений: 10
23.04.2012, 23:45  [ТС] #3
Кажется понял. While реагирует из-за getline на нажатие enter?
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
23.04.2012, 23:57 #4
Может вы напишите полный текст задания, или приведете код на C#, а то я ,просто, не совсем понимаю что Вы делаете. Возможно смогу помочь найти более оптимальный алгоритм решения. И кстати, в данном случае не стоит использовать глобальные переменные, да и вообще не стоит использовать глобальные переменные.
Stror
1 / 1 / 0
Регистрация: 23.04.2012
Сообщений: 10
24.04.2012, 00:08  [ТС] #5
На шарпах кода нет, ибо нужно перевести с данного кода C++ на шарпы)

Задание
Avazart
Эксперт С++
7145 / 5322 / 275
Регистрация: 10.12.2010
Сообщений: 23,557
Записей в блоге: 17
24.04.2012, 00:12 #6
C++
1
while(getline(cin,S)){}
getline ,будет читать строки пока не будет какая нибудь ошибка или конец файла тогда поидее она возвратит false(возвратит поток) ну и будет выход из цикла.

http://www.cplusplus.com/reference/string/getline/
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2012, 00:12
Привет! Вот еще темы с ответами:

Не выполняется функция getline() - C++
Добрый вечер, уважаемые программисты! Написал программу, содержащую класс, который имеет два поля: номер и имя, и два метода: ввод и...

Не работает функция getline ! - C++
Здравствуйте, помогите, если можете. Не корректно работает функция getline ! Я облазил google, нашел много похожих постов, но...

Не работает функция getline(); - C++
Помогите, после ввода в переменную int c не выполняется функция getline, программа ее просто пропускает. #include &lt;iostream&gt; using...

Функция getline(cin,.) - C++
Здравствуйте уважаемые программисты. По темам пробежался getline(), но чет не понял, проблема, почему при вводе данных о первом человеке...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.04.2012, 00:12
Ответ Создать тему
Опции темы

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