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

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

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

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

23.04.2012, 21:45. Просмотров 1884. Ответов 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
Посмотрите здесь:

Функция С++ getline() C++
C++ Функция getline(cin,slovo)
C++ Что делает функция getline
функция getline() в dev_C++ C++
Функция getline не считывает пробелы C++
C++ Не работает функция getline !
Функция getline C++
Не выполняется функция getline() C++
Функция getline и ifstream C++
Не работает функция getline(); C++
Функция cin.getline() C++
Функция getline(cin,.) C++

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

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

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

http://www.cplusplus.com/reference/string/getline/
Yandex
Объявления
24.04.2012, 00:12     Функция getline в условии while
Ответ Создать тему
Опции темы

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