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

Ошибка при выводе самой длинной строчки. - C++

Восстановить пароль Регистрация
 
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
05.01.2010, 22:51     Ошибка при выводе самой длинной строчки. #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream.h>
#include<conio.h>
#include<string.h>
  using namespace std;
  void main()
   
{string s[100];int n,k,min;
 cout<<"koli4estvo stro4ek"<<" ";cin>>n;
 clrscr();
   for (k=0;k<n;k++)
   {cout<<k<<" -stro4ka ";
    cin>>s[k];}
    min=s[k].length();
   for (k=1;k<n;k++)
    if (s[k].length()<min) {min=s[k].length();}
 
     cout<<min;
     getch();
     }
Программа должна выводить сколько симболов содержит самая длинная строчка.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
05.01.2010, 23:00     Ошибка при выводе самой длинной строчки. #2
getline(cin,s); - считывает строку до энтера, сin - до пробела или энтера
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
05.01.2010, 23:09  [ТС]     Ошибка при выводе самой длинной строчки. #3
Цитата Сообщение от outoftime Посмотреть сообщение
getline(cin,s); - считывает строку до энтера, сin - до пробела или энтера
а развебез getline нельзя подсчитать симболы в каждой строчке, и потом среде этих строчек найти самую длинную, я хочу оставить свой вариат, просто найти там ошибку.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
05.01.2010, 23:15     Ошибка при выводе самой длинной строчки. #4
тогдавводи строку посимвольно и проверяй на начало новой строки
C++
1
2
3
4
5
6
char ch;
string s;
while (scanf("%c",&ch))
{
   if (ch != '\n') s+= ch;
}
далее сам разбереш
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
05.01.2010, 23:18     Ошибка при выводе самой длинной строчки. #5
а развебез getline нельзя подсчитать симболы в каждой строчке, и потом среде этих строчек найти самую длинную,
таков уж cin...и ничего менять не надо просто вместо cin>>text напиши getline(cin,text);
C++
1
getline(ПОТОК, ТЕКСТ);
Добавлено через 14 секунд
да и полезному научишься
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
05.01.2010, 23:21     Ошибка при выводе самой длинной строчки. #6
я когда-то пробовал
C++
1
cin.getline(s);
но ничего хорошего с этого не вышло
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
05.01.2010, 23:22     Ошибка при выводе самой длинной строчки. #7
Цитата Сообщение от outoftime Посмотреть сообщение
cin.getline(s);
разве функция не принимает 2 параметра?
C++
1
cin.getline(text, size);
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
05.01.2010, 23:25     Ошибка при выводе самой длинной строчки. #8
возможно)) как-то попробую
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2010, 23:36     Ошибка при выводе самой длинной строчки.
Еще ссылки по теме:

C++ Переделать функцию поиска самой длинной строки так, чтобы она правильно печатала размер произвольно длинной входной строки и воспроизводила ее
C++ Поиск самой длинной строки в const char**
C++ Функция нахождения самой длинной неубывающей подпослед-ти

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

Или воспользуйтесь поиском по форуму:
Андрейка
409 / 213 / 23
Регистрация: 25.03.2009
Сообщений: 716
05.01.2010, 23:36     Ошибка при выводе самой длинной строчки. #9
в общем std::getline(...,...) читает из потока (std::cin, файлового) в объект какой то
ну там к примеру читаем из файла строки
C++
1
2
3
4
std::ifstream in("d:\\file.txt");
       std::string temp;
       while (std::getline(in,temp))
         std::cout << temp << std::endl;
но с помощью std::getline нам не обязательно читать всю строку целиком, просто в объявлении функции за место 3 параметра стоит символ перевода строки, ну и следовательно когда мы вызываем эту функцию мы может за место 3 параметра поставить , . : и т д то есть будем считывает до опр char - знака. И того получилось что в функции std::getline формальных параметров 3 а фактических (при вызове) как минимум 2.
Yandex
Объявления
05.01.2010, 23:36     Ошибка при выводе самой длинной строчки.
Ответ Создать тему
Опции темы

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