Форум: Форум C++Разное
Новые темы: 00
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: c++ Строки

Сообщения:  [1-10]    [11-20]  [21-30] 

 
 автор: WveB   (21.12.2008 в 22:01)   письмо автору
 
   для: exp   (21.12.2008 в 21:58)
 

ругается вот на эту строчку
namespace std;

  Ответить  
 
 автор: exp   (21.12.2008 в 21:58)   письмо автору
 
   для: WveB   (21.12.2008 в 21:24)
 

похоже на Borland C++BuilderX
попробуйте просто заменить

int main(int argc, char *argv[])
таким
int main()

просто жаловалось на то что эти переменные не разу не использовались

хотя наверное ещё лучше включить в начале файл
#include <stdlib.h>

и раскомментировать в конце
system("PAUSE");
удалив эти два вызова cin.getline(&x, 1); // // лишний cin думаю баг devCpp
cin.getline(&x, 1); // типа getch()

//PS
два cin.getline оказалось и в C++BuilderX так-же как в devCpp
думаю баг Виндовс :))

  Ответить  
 
 автор: WveB   (21.12.2008 в 21:24)   письмо автору
 
   для: exp   (21.12.2008 в 03:43)
 

Ошибки такие :
massiv.CPP(2,16):namespace name expected
massiv.CPP(77,2):Parameter 'argv' is never used
Вот такие вот ошибки

  Ответить  
 
 автор: exp   (21.12.2008 в 03:43)   письмо автору
 
   для: WveB   (21.12.2008 в 01:53)
 

вот такой вариант вроде получше
#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
char str[512] = "01110001 1110110 0000001110000 0100100101\0";
char x;
int i, group=0, a=0, ln=0, ones[2];
/*
ones[2]- первый элемент длинна группы из ln 
второй колличество едениц из a
group - только 0 или 1 или 2
*/

cout << "enter digit:"<< endl;
 cout << " 1 new string"<< endl; 
 cout << " 2 default string:"<< endl;
 cout << " '"<< str <<"'"<< endl; // если лениво вводить строку
 cout << " 0 exit"<< endl;
cin >> i;
cout << endl;

switch(i) {
 case 1:
   cout << "(Notice: only ' ', 1, 0 characters)"
   <<endl<<"enter string:"<< endl;

   cout.flush();
   cin.getline(&x, 1); // лишний cin думаю баг devCpp 
   cin.getline(str,511);
 break;
 case 2:
 break;
 default:
   i = 0;
}// end of switch

if (i) {
 i=0;

for (i=0; (x = str[i]) != 0x00; i++) {

   switch (x) {
   case '1':
     ln++;
     a++;
     group=2;
   break;
   case '0':
     ln++;
     group=2;
   break;
   default:
    if (group>1 && (!ones[0] || ones[0]>ln)) {
       ones[0] = ln;
       ones[1] = a;
     }
  group = (group)? 1: 0;
  ln = a = 0;

 }// end of switch
}// end of while

    if (group>1 && (!ones[0] || ones[0]>ln)) {
       ones[0] = ln;
       ones[1] = a;
     } // последнее возможное нахождение

cout <<endl<<"result: "<< ones[1]<< endl;
cout <<"length group = "<< ones[0]<< endl;
cout <<"string = "<< str << endl;
}
   // system("PAUSE");

cin.getline(&x, 1); // // лишний cin думаю баг devCpp 
cin.getline(&x, 1); // типа getch();
 return 0;
}

какие ошибки выдаёт ?

  Ответить  
 
 автор: WveB   (21.12.2008 в 01:53)   письмо автору
 
   для: exp   (21.12.2008 в 00:31)
 

спасибо что не отказал, но на С++ не работает это, надо компилировать !

  Ответить  
 
 автор: exp   (21.12.2008 в 00:31)   письмо автору
1.4 Кб
 
   для: WveB   (20.12.2008 в 21:31)
 

попробовал тут сделать что-то похожее на C++

и не смог найти как-же при помощи cin получить строку вместе с пробелами :)
вроде всё правильно должно считать с локальной строкой , но почему при вводе новой строки не помещает текст после пробелов?
подскажите есть-ли возможность с помощью cin ввести строку полностью ?
разобрался вроде



здесь есть баг если всего одна группа и ограничения 512

//upd:
прикрепил этот старый код

  Ответить  
 
 автор: WveB   (20.12.2008 в 21:31)   письмо автору
 
   для: exp   (20.12.2008 в 21:27)
 

строка идет произвольная, то есть 010110 01101110 110 000 11001
как-то так !
Надо чтоб находилась самая короткая группа и в ней надо посчитать сколько единиц в ней !

  Ответить  
 
 автор: exp   (20.12.2008 в 21:27)   письмо автору
14.1 Кб
 
   для: WveB   (20.12.2008 в 20:37)
 

Вы компилировали и запускали этот последний код ?
(прикрепил exe-файл)
тогда вы должны понять что я ничего не понял из задачки :)

то что группы цифр разделены пробелом , я понял
но посчитать колличество едениц можно и в такой строке 000 111 00 11
можно в такой 0101 1010 1100 100
поэтому я просто считал подряд-идущие еденицы не обращая внимания на любой другой ввод с консоли,
хотя там и правда нет действий над строкой как над массивом
А в предыдущей задачке оказалось что использовалась ещё и строка введённая с консоли
и та задачка решилась совершенно случайно и самопроизвольно тоже на чистом C,пока я решал свои задачки . Я и не знал , что такое решение могло пригодиться вообще :)
Могу сделать на C используя прогон статической строки в цикле, но опять-же 0000 111 или 0101 110 ?
и OOP пока не трогаю , потомучто не знаю

  Ответить  
 
 автор: WveB   (20.12.2008 в 20:37)   письмо автору
 
   для: exp   (20.12.2008 в 20:08)
 

проще говоря ты не знаешь как это сделать ?
Как же ты тогда предъидущюю задачу сделал, которую M@M@ZOGLO не мог сделать ?

  Ответить  
 
 автор: exp   (20.12.2008 в 20:08)   письмо автору
 
   для: WveB   (20.12.2008 в 19:31)
 

Я и сам только только начал пытаться понять ;) вот из книги
C++ - универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей C++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, C++ предоставляет гибкие и эффективные средства определения новых типов.

И далее там что-то о классах и структурах и ... OOP вобщем , пока лично заметил только отличия в синтаксисе написания struct в С и struct в С++, компилятор C не понимал то что для C++.
И много примеров на английском , с использованием классов для упрощения работы со строкой , и всяких модулей типа MFC . Вроде обьясняют что как-то разумнее используется памть в этих классах.

Здесь в этой теме сам видишь как я попытался создать два класса , только чтобы попробовать удобнее получать длинну строки.) пока бросил такое желание , ещё многое надо читать, потом буду опять пробовать :)

но то что работает в C должно всётаки работать в C++, другое дело требуется-ли от вас объектно-ориентированный подход к решению задачи

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-30] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования