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

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

Войти
Регистрация
Восстановить пароль
 
denver
1610 / 279 / 3
Регистрация: 19.09.2009
Сообщений: 701
#1

Ошибка с оператором - C++

11.10.2009, 10:13. Просмотров 736. Ответов 12
Метки нет (Все метки)

Ребят помогите не могу вдуплить только начал изучать С++ и при написании программы посчета слов в файле выдает ошибку (недопустимый else без парного if)
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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#define eof -1
 
#define yes 1
#define no 0
 
int _tmain(int argc, _TCHAR* argv[])
{
    int c;//для ввода слов
    int nc;//для подсчета введеных символов
    int nl;//счетчик строк
    int nw;// счетчик слов
    int in;/*флажок слежение за тем находится ли в данный момент программа
           внутри слова или нет */
 
nc=nl=nw=0;//обнуление счетчиков
in=no;// до ввода находимся вне слова
printf("enter your strings and press the key<ENTER> >\n");
while((c=getchar()) !=eof)
{
if(c != '\n')
nc++;
else
nl++;
if(c==' ' || c=='\n' || c=='\t')
else if(in==no) // здесь показывает ошибку
{
    in=yes;
    nw++;
}
else
;
}
printf("string.....=%d\n",nl);
printf("worlds.....=%d\n",nw);
printf("characters.....=%d\n",nc);
_getch();
}
Заранее признателен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2009, 10:13     Ошибка с оператором
Посмотрите здесь:

Ошибка с оператором switch - C++
Добрый день! Я писала программу в VS2010, но потом появилась необходимость запустить программу в 2008. После запуска, она ругается на этот...

ошибка с оператором множественного выбора - C++
здравствуйте, форумчане. вот код реализации очереди: #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;locale.h&gt; #include...

Error C2679. Ошибка с оператором >> - C++
Есть функция DelColl в классе Firm. Вот её кусок: //Удаление сотрудника void Firm::DelColl(int _Quant) { Quant = _Quant; char...

Компилятор визуаль студио 2008 с++,выскакивает ошибка с оператором вывода "<< " - C++
#include&lt;iostream&gt; using namespace std; int main(){ int s; cout&lt;&lt;&quot;wwesti cislo: \n&quot;; cin&gt;&gt;s; int zxc; ...

Ошибка с оператором для "==" - C++
Писал код и вышла ошибка: &quot;Ошибка 2 error C2679: бинарный &quot;==&quot;: не найден оператор, принимающий правый операнд типа &quot;std::string&quot; (или...

Задача с оператором if - C++
Определить, могут ли три точки с координатами (x1, y1), (x2, y2), (x3, y3) являться вершинами треугольника. использовать условный оператор...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
11.10.2009, 10:31     Ошибка с оператором #2
C++
1
2
3
if(c==' ' || c=='\n' || c=='\t')
;                                              // здесь что-то должно быть хотябы ;
else if(in==no) // здесь показывает ошибку
хотя зачем так делать если можно сделать так
C++
1
2
if(!(c==' ' || c=='\n' || c=='\t'))  
 if(in==no)
GennDALF
12 / 12 / 0
Регистрация: 24.09.2009
Сообщений: 61
11.10.2009, 10:32     Ошибка с оператором #3
Это потому что у тебя после условия (28 строка) нет ни одного оператора.
Программа ожидает выполнения какого-то действия, а ты заставляешь ее сразу переходить уже к следующему условию...
Если так действительно и надо, то чтобы программа заработала поставь в конце 28 строки точку с запятой. Или сотри 28 строку, а вместо else if поставь просто if
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.10.2009, 10:45     Ошибка с оператором #4
Или так:
C++
1
if(!(c==' ' || c=='\n' || c=='\t') && in==no)
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
11.10.2009, 10:51     Ошибка с оператором #5
GennDALF, а что на 28-ой не так?
GennDALF
12 / 12 / 0
Регистрация: 24.09.2009
Сообщений: 61
11.10.2009, 10:57     Ошибка с оператором #6
МедведЪ, с самой 28 все отлично, просто я в упор не понимаю зачем нужно условие, если при его истинности ничего не происходит.
denver
1610 / 279 / 3
Регистрация: 19.09.2009
Сообщений: 701
11.10.2009, 11:01  [ТС]     Ошибка с оператором #7
Спасибо большое за оперативность поставил точку с запятой все работает правда слова не считает все время 1 пишет щас буду дальше копаться. Пишу не сам а по книге поэтому разобраться не мог, в ней точка с зяпятой отстствует.
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
11.10.2009, 11:12     Ошибка с оператором #8
denver,
C++
1
2
if(c==' ' || c=='\n' || c=='\t')
else if(in==no) // здесь показывает ошибку
у тебя у первого if нету тела,условие есть а тела нету
denver
1610 / 279 / 3
Регистрация: 19.09.2009
Сообщений: 701
11.10.2009, 11:18  [ТС]     Ошибка с оператором #9
вот полность переписал с книжки с коментами как у них оно выглядит
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
44
45
46
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#define eof -1
 
#define yes 1
#define no 0
 
int _tmain(int argc, _TCHAR* argv[])
{
    int c;//для ввода слов
    int nc;//для подсчета введеных символов
    int nl;//счетчик строк
    int nw;// счетчик слов
    int in;/*флажок слежение за тем находится ли в данный момент программа
           внутри слова или нет */
 
nc=nl=nw=0;//обнуление счетчиков
in=no;// до ввода находимся вне слова
printf("enter your strings and press the key<ENTER> >\n");
while((c=getchar()) !=eof)
{
if(c != '\n')// если символ не конец строки
nc++; /*какой бы символ не ввели (кроме ctrl+z и '\n'), его надо учитывать в счетчике*/
else//иначе... (если введеный символ конец строки)
nl++;/* здесь с=='\n' и поэтому сколько раз нажали <enter>, столько и будет строк*/
if(c==' ' || c=='\n' || c=='\t') /*если символ хотя бы один из in=no;*/
/*сколько бы раз ни нажимали клавишу пробел, конец строки, 
табуляция, всегда будет нажодится вне слова */
else if(in==no) /* сюда попадаем только тогда, когда нажали любую клавишу, кроме пробела
                , <enter> и конца строки*/
{
    in=yes; /* если до этого мы были вне слова (in=no), то
            сейчас попали на начало слова*/
    nw++; // и слово надо учесть в счетчике
}
else // иначе... если (in != no)
;/* эта часть выполняется, когда мы, находясь внутри слова (in != no), ввели любой символ, кроме пробела, 
 знака табуляции и знака конца строки. в этом случае подсчет слов не ведется, а программа возращается
 на ввод следующего символа*/
}
printf("string.....=%d\n",nl);
printf("worlds.....=%d\n",nw);
printf("characters.....=%d\n",nc);
_getch();
}
GennDALF
12 / 12 / 0
Регистрация: 24.09.2009
Сообщений: 61
11.10.2009, 11:25     Ошибка с оператором #10
Ничего личного, но я бы не стал читать такую книжку
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
11.10.2009, 12:05     Ошибка с оператором #11
denver, елси подсчет слов,то используй код из КиР
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#DEFINE    YES  1
#DEFINE    NO   0
 
MAIN()  /* COUNT LINES, WORDS, CHARS IN INPUT */
{
   INT C, NL, NW, INWORD;
 
   INWORD = NO;
   NL = NW = NC = 0;
   WHILE((C = GETCHAR()) != EOF)  {
       ++NC;
       IF (C == '\N')
            ++NL;
       IF (C==' ' \!\! C=='\N' \!\! C=='\T')
            INWORD = NO;
       ELSE IF (INWORD == NO)  {
            INWORD = YES;
            ++NW;
       }
   }
   PRINTF("%D %D %D\N", NL, NW, NC);
}
Добавлено через 4 минуты
denver, только тут надо добавить int рядом с main,и все написать с маленькими буквами
denver
1610 / 279 / 3
Регистрация: 19.09.2009
Сообщений: 701
11.10.2009, 12:06  [ТС]     Ошибка с оператором #12
Цитата Сообщение от GennDALF Посмотреть сообщение
Ничего личного, но я бы не стал читать такую книжку
Согласен полностью буду искать Хортона базовый курс, а эту выкину.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2009, 12:08     Ошибка с оператором
Еще ссылки по теме:

переменные с оператором If - C++
Даны две переменные целого типа:А и В. Если их значение не равны, то присвоить каждой переменной сумму этих значений, а если равны, то...

Функция с оператором - C++
#include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;ctime&gt; using namespace std; class BitString { public: BitString(int s) ...

Работа с оператором for - C++
Использовать оператора цикла с параметром (for) Найти сумму положительных компонент вектора . Элементы вектора определяются по формуле:...

Решить с оператором while - C++
помогите пожалуйста решить прогу, используя в прогрумме оператор while. Условие:Пасажирский самолет может поднять груз общим весом...


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

Или воспользуйтесь поиском по форуму:
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
11.10.2009, 12:08     Ошибка с оператором #13
denver, ищи КиР это по С а по С++ страуструп
Yandex
Объявления
11.10.2009, 12:08     Ошибка с оператором
Ответ Создать тему
Опции темы

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