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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
#1

Трабла с функцией ( - C++

27.09.2009, 13:48. Просмотров 1227. Ответов 12
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
 
int main() {  }
 
char m(char s) {
 
char mass[500];
 
for (int i =0; i < strlen(s); i++) {
 
   printf("%d",mass[i);
 
}
 
}
Компиль выдаёт invalid conversion from `char' to `const char*' .Что делать то...Тип сравнение недоупстимо?...Как Тогда быть ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2009, 13:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Трабла с функцией ( (C++):

Трабла с конструктором - C++
Компилятор никаких ошибок не выдает, но программа не запускается. using namespace std; class Cpmv { public: struct Info ...

трабла с MessageBox - C++
Вот такая вот задачка сначала задается текст в ANSI ,затем его конвертируем в UNICODE и должны вывести его 3 способами - через _tprintf ,...

Трабла с прогой - C++
&quot;дан радиус окружности. Найти длину окружности и площадь круга&quot; как вычислить подобную задачу на С. Жду ответа. С уважением.

трабла с выводом строки - C++
вот код который неправильно работает: void Cue::Out() { char ch; for (int i=0; i&lt;curInd; ++i) { ch = Str; ...

трабла кодом(Функция) - C++
#include &lt;stdio.h&gt; #include &lt;iostream.h&gt; #include &lt;conio.h&gt; void z(float p,int u) { int i; int F1,F2,S1,S2,K1,K2; ...

Опять трабла с ответом - C++
вот такой алгоритм 1*10+2*9+3*8+4*7+5*6 #include &lt;iostream.h&gt; #include &lt;stdio.h&gt; const int n=100; int main (int argc, char *...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
27.09.2009, 13:56 #2
Welemir
судя по написанному, имеются либо громадные провалы в памяти, либо проблнма с пониманием самых основ.
лучше расскажи, че ты задумал сделать в этой функции?
0
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
27.09.2009, 13:57 #3
ты передаёшь символ, а треба указатель на строку символов. что ты на самом деле хочешь передать в функцию?

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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
 
char m(char *s);
int main() 
{ 
  char *str="1234567";
  m(str);
  system("PAUSE");
  return 0; 
}
 
// выводит неопределённые значения массива mass в количестве strlen(s)
char m(char *s) {
  
  char mass[500]; // выводить хочешь не заполненый массив
  
  for (int i =0; i < (int)strlen(s); i++) 
  {   
    printf("%d",mass[i]); // тут была ошибка, нехватало ]
  }
  return '?'; // что-то должен вернуть 
}
1
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
27.09.2009, 14:07  [ТС] #4
Хотел написать функцию,в которую можно передавать символы и выводить их... Без main() никак не обойтись чтоли?)
0
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
27.09.2009, 14:14 #5
если хочешь посмотреть как работать будет, то без main никак. откуда вызывать свою функцию-то будешь?
странный функционал
передавать символы и выводить их
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
27.09.2009, 14:21 #6
Цитата Сообщение от Welemir Посмотреть сообщение
Без main() никак не обойтись чтоли?)
main - ни много, ни мало, а точка входа в твою программу. Проще говоря - нет main - нет начала программы
1
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
27.09.2009, 14:53  [ТС] #7
Вот другая функция.Не работает и усё(:

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
42
43
#include <iostream>
#include <conio.h>
#include <string.h>
 
 
int main() {
    
 int p = 0; // счётчик пробелов
 int t = 0; // счётчик табуляций
 int n = 0; // сч1тчий новых строк
 int d = 0;
 
  d = getchar();
  
  while( d != EOF) {
         
         if ( d == '\n') {
              
              n++;
              
              }
              
              if ( d == '\t') {
                   
                   t++;
                   
                   }
                   
                   if ( d == ' ') {
                        
                        p++;
                        
                        }
                        
                        
                        printf("%d\n",t);
                        system("PAUSE");
                        exit(1);
                        
                        }
                        
                        
                        }
ЗЫ: На РНР-то работает...Пока что программа должна считать символы табуляций).
0
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
27.09.2009, 14:56 #8
Цитата Сообщение от Welemir Посмотреть сообщение
Хотел написать функцию,в которую можно передавать символы и выводить их...
Тода так

C++
1
2
3
4
5
6
7
8
#include <stdio.h>
 
int main() {  }
 
//Вот в эту функцию ты передал символ и она его вывела.
char m(char s) {
 printf("%c", s);
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9627 / 5575 / 947
Регистрация: 25.07.2009
Сообщений: 10,710
27.09.2009, 15:12 #9
Цитата Сообщение от Welemir Посмотреть сообщение
Вот другая функция.
Вот так как-то:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main(void)
{
    int p,t,n,d;
    p = t = n = 0;
    
    while ( (d = getchar()) != EOF ){
        if ( d == ' ' )
            p++;
        if ( d == '\t' )
            t++;
        if ( d == '\n' )
            n++;
    }
    printf("p = %d\tt = %d\tn = %d\n", p, t, n);
    
    return 0;
}
В никсовой консоли, чтобы EOF выдало, надо Ctrl+D нажать (конец файла), в досовской - не помню. Ctrl+Z вроде...
0
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
27.09.2009, 15:13 #10
Welemir, непонятно мне ничего...
По твоей неработающей функции. Значит, первое.
Если ты хочешь, чтобы у тебя всё-таки был цикл, то сделай так, чтобы можно было возвращаться к проверке условия
( d != EOF)

Пока же дела обстоят так: программа заходит в тело цикла, доходит до функции exit(1); которая выполняется БЕЗУСЛОВНО.
Программа прекращает свою работу.
Если хочешь использовать эту функцию, то как-нибудь по другому. Либо помести её в
другое место (вынеси за тело цикла), либо сделай, чтобы она вызывалась ПО НЕКОТОРОМУ
УСЛОВИЮ

(Я беру на себя смелость домысливать за неимением информации).
0
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
27.09.2009, 15:14 #11
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
#include <iostream>
#include <conio.h>
#include <string.h>
 
#define  ESC    27
#define  ENTER  13
 
int main() {  
  int p = 0; // Г±Г·ВёГІГ·ГЁГЄ ïðîáåëîâ
  int t = 0; // Г±Г·ВёГІГ·ГЁГЄ ГІГ*áóëÿöèé
  int n = 0; // Г±Г·ВёГІГ·ГЁГ© Г*îâûõ ñòðîê
  char d;  
 
  
  do 
  {
    d = getch();  
    if ( d == ENTER) {      
      n++;     
    }
    
    if ( d == '\t') {      
      t++;      
    }
    
    if ( d == ' ') {      
      p++;  }  
   // printf("%c\n",d);
    }  while( d != ESC);   
    
    printf("press space:%i\ntabulation:%i\nenter:%i\n",p, t, n);
    system("PAUSE");
    return 0;    
 }
0
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
27.09.2009, 16:20  [ТС] #12
Всё,терь я понял вас.Пасип большое.*Ушёл проверять примеры*

ЗЫ: последний пример чет не хочет работать.

Добавлено через 15 минут
Всё,терь я понял вас.Пасип большое.*Ушёл проверять примеры*

ЗЫ: последний пример чет не хочет работать.
ЗЫ2: Насчёт условий - разве EOF(End of File) не является концом файла? У меня получается проверка одного символа,а не строки...

Не фтыкаю я ни хрена...мошь с консоли как-нибудь получить данные ? Типа как в рнр массив рекьюст...Тут я вообще не догоняю ни черта.Потом можно по массиву было б прогнать.

ЗЫ3: Тупо поставил break; после printf().В итоге проверяет только один символ).

Добавлено через 9 минут
Теперь,кажется,догнал,в чём дело.Я поставил break и он вышел после проверки всех условий цикла и цикл НЕ повторился.Я так понял,тут нужно какое-то условие,например,если счетчики дополнились до 100 или 1000,то выйти из цикла.Или for() поставить...

Добавлено через 13 минут
Ура,получилось! Вот программа,которая считает 100 строк:

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
42
#include <iostream>
#include <conio.h>
#include <string.h>
 
 
int main() {
    
 int p = 0; // Г±Г·ВёГІГ·ГЁГЄ ïðîáåëîâ
 int t = 0; // Г±Г·ВёГІГ·ГЁГЄ ГІГ*áóëÿöèé
 int n = 0; // Г±Г·ВёГІГ·ГЁГЄ Г*îâûõ ñòðîê
 int d = 0;
 
 d = getchar();
 
  while(d != EOF) {
         
         if ( d == '\n') {
              
              n++;
              
              }
              
              if ( d == '\t') {
                   
                   t++;
                   
                   }
                   
                   if ( d == ' ') {
                        
                        p++;
                        
                        }
                        
                        printf("Tabulations:%d\nProbels:%d\nStrings:%d\n",t,p,n);
                        
                        if (n == 100) {  break; }
                        d = getchar();
 
                        }
                        
                        }
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
28.09.2009, 05:36 #13
Цитата Сообщение от Welemir
Компиль выдаёт invalid conversion from `char' to `const char*'
C
1
strlen(s)
C
1
char m(char s) {
s - символ, а strlen ожидает указатель на неменяемый символ
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2009, 05:36
Привет! Вот еще темы с ответами:

Читаем из файла, трабла (ifstream, getline) - C++
Доброе время суток! Ребят знаю туплю но все же, спрошу, не тыкайте палкой! Имеем тексовый файл MainMenu_start...

Как быть и что делать? Трабла с шаблонами - C++
Литературы по шаблонному программированию в Си++ так много, что поднимать и искать то, что нужно мне довольно долго... Началось всё с...

Трабла с LibCurl - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;time.h&gt; #include &lt;curl/curl.h&gt; ...

Трабла с шаблонным классом "Геометрия" - C++
Есть файл &quot;geometry.cpp&quot;: #include &lt;vector&gt; #include &lt;cassert&gt; #include &lt;cmath&gt; #include &lt;iostream&gt; #include &quot;geometry.h&quot; ...


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

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

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