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

Ошибка - C++

Восстановить пароль Регистрация
 
Vaizardo
0 / 0 / 0
Регистрация: 13.11.2010
Сообщений: 18
13.11.2010, 18:58     Ошибка #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <windows.h>
#include <cstdlib>
#include <iostream>
#include <cstdio>
#pragma hdrstop
#include <conio.h>
using namespace std;
 
int main(int argc, char* argv[]);
bool correct(char ch)
 
{
    char *str="Vvedite stroky";              
 
              if ((ch >= 'a'&& ch <= 'z')||(ch >= 'A' && ch <= 'Z')&&(ch >='а'&& (ch <= 'я')||(ch >= 'А'&& ch <= 'Я')))
                  return false;
              else return true;
std::cout<<*str;
getch ();
 
    return 0;
}
Выводит ошибку:
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status
Помогите пожалуйсто исправить. Работаю в Dev-C++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2010, 18:58     Ошибка
Посмотрите здесь:

C++ Глупая ошибка, но до сих пор неисправленная ошибка: ";"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
13.11.2010, 19:14     Ошибка #2
Vaizardo, а почему у вас main без тела?
Vaizardo
0 / 0 / 0
Регистрация: 13.11.2010
Сообщений: 18
13.11.2010, 19:26  [ТС]     Ошибка #3
M128K145 , изучаю С++ только третий день, и то по учебникам которые нам дали, и по интернету. Терминалогию ещё плохо знаю, поэтому про тело вам сказать ничего не могу(
Писал программу по примерам из интернета. Как тело должно выглядеть или что из себя представляет?
almazsr
232 / 169 / 7
Регистрация: 13.11.2010
Сообщений: 425
13.11.2010, 19:30     Ошибка #4
C++
1
2
3
4
5
6
7
8
9
10
11
int main(int argc, char* argv[])
{        
char *str="Vvedite stroky";                  
              if ((ch >= 'a'&& ch <= 'z')||(ch >= 'A' && ch <= 'Z')&&(ch >='а'&& (ch <= 'я')||(ch >= 'А'&& ch <= 'Я')))
                  return false;
              else return true;
std::cout<<*str;
getch ();
 
        return 0;
}
После функции объявления функции не ставится ; если это не прототип.
Vaizardo
0 / 0 / 0
Регистрация: 13.11.2010
Сообщений: 18
13.11.2010, 19:36  [ТС]     Ошибка #5
almazsr , сделал так. Пишет `ch' undeclared (first use this function)
Изменил ch на char пишет 13 expected primary-expression before "char" , подскажите как исправить?
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
13.11.2010, 19:36     Ошибка #6
almazsr, в коде ТС и был объявлен только прототип main
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
13.11.2010, 19:44     Ошибка #7
Попробуйте так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <windows.h>
#include <cstdlib>
#include <iostream>
#include <cstdio>
#pragma hdrstop
#include <conio.h>
using namespace std;
 
int main()
{
        char ch;
        char *str="Vvedite stroky";                  
 
              if ((ch >= 'a'&& ch <= 'z')||(ch >= 'A' && ch <= 'Z')&&(ch >='а'&& (ch <= 'я')||(ch >= 'А'&& ch <= 'Я')))
                  return false;
              else return true;
        std::cout<<*str;
        getch ();
        return 0;
}
Vaizardo
0 / 0 / 0
Регистрация: 13.11.2010
Сообщений: 18
13.11.2010, 19:52  [ТС]     Ошибка #8
x1Mike7x , попробовал, теперь компилирует, но программа сразу же закрывается после запуска(
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.11.2010, 19:52     Ошибка #9
http://www.cyberforum.ru/cpp-beginners/thread10807.html
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.11.2010, 19:54     Ошибка #10
x1Mike7x,
almazsr, поная ерунда получаеися в коде:
во-первых:
C++
1
2
3
             if ((ch >= 'a'&& ch <= 'z')||(ch >= 'A' && ch <= 'Z')&&(ch >='а'&& (ch <= 'я')||(ch >= 'А'&& ch <= 'Я')))
                  return false;
              else return true;
при любом раскладе после этих строк выходим из main().
во-вторых в ch ничего не записано, а значение переменной пытаемся сравнить с символами.

Добавлено через 1 минуту
asics, причина не в этом. См. пункт во-первых.
almazsr
232 / 169 / 7
Регистрация: 13.11.2010
Сообщений: 425
13.11.2010, 19:58     Ошибка #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
#include <windows.h>
#include <cstdlib>
#include <iostream>
#include <cstdio>
#pragma hdrstop
#include <conio.h>
 
using namespace std;
 
bool correct(char ch)
{                      
              if ((ch >= 'a'&& ch <= 'z')||(ch >= 'A' && ch <= 'Z')&&(ch >='а'&& (ch <= 'я')||(ch >= 'А'&& ch <= 'Я')))
                  return false;
              else return true;
}
 
int main(int argc, char* argv[])
{
    char *str="Vvedite stroky";  
    std::cin>>*str;
    getch ();
        return 0;
}
Вот видимо, что он хотел.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.11.2010, 20:03     Ошибка #12
almazsr, вряд ли, функция bool correct(char ch) ни разу не вызывается, смысла нет тогда ее описывать. Теребите Vaizardo, что же он все-таки хотел.
Vaizardo
0 / 0 / 0
Регистрация: 13.11.2010
Сообщений: 18
13.11.2010, 20:04  [ТС]     Ошибка #13
asics , getch у меня есть.
valeriikozlov , 1 подскажите пожалуйсто как это исправить?
2 видел задачку, тоже с исключением, там так работает, но до этого была задана
bool correct(char ch)...
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.11.2010, 20:09     Ошибка #14
Vaizardo, Вот Вы пишите:
Писал программу по примерам из интернета.
А что там написано про то что должна делать эта программа?
Vaizardo
0 / 0 / 0
Регистрация: 13.11.2010
Сообщений: 18
13.11.2010, 20:11  [ТС]     Ошибка #15
valeriikozlov Дана строка символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелы внутри себя, будем называть словами. Исключить из строки слова, состоящие из символов русского и латинского алфавитов одновременно.
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
13.11.2010, 20:25     Ошибка #16
А, точно, завтыкал.
+ 1) В проверке корректности ввода символа, я полагаю, что true|false надо поменять местами. 2) В самом if'е между проверкой на вхождение в кириллицу/латиницу надо ставить or, а не and.
Тогда более правильным будет переделать код так:
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 <windows.h>
#include <cstdlib>
#include <iostream>
#include <cstdio>
#pragma hdrstop
#include <conio.h>
using namespace std;
 
bool correct(char ch)
 
{
    if ((ch>='a')&&(ch<='z') || (ch>='A')&&(ch<='Z') || (ch>='а')&&(ch<='я') || (ch>='А')&&(ch<='Я'))
        return true;
    else 
        return false;
};
 
int main(int argc, char* argv[]);
{
    char *str="Vvedite stroky";                  
    std::cout<<*str;
    // тут по-видимому должен быть код ввода строки и проверки его на правильность посимвольно 
    getch();
    return 0;
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.11.2010, 20:33     Ошибка #17
Vaizardo, Вообще-то странный для этой задачи пример из интернета. Сейчас поясню: видимо для проверки слова на наличие символов из русского и латинского алфавитов одновременно использовалась функция bool correct(char ch). Если Вы ее переписали правильно, то она написана автором безграмотно. Вот ошибка:
C++
1
2
3
if ((ch >= 'a'&& ch <= 'z')||(ch >= 'A' && ch <= 'Z')&&(ch >='а'&& (ch <= 'я')||(ch >= 'А'&& ch <= 'Я')))
                  return false;
              else return true;
Если символ маленькая английская буква, то return false, else return true;
В общем эта функция всегда будет возвращать false если символ маленькая английская буква во всех других случаях будет возвращено true.
Если идти этим путем, то тогда лучше сделать что бы correct(char ch) возвращала true когда символ английский, и возвращала false когда символ русский. Тогда считав первую букву слова и узнав что возвращает на этот символ correct(char ch) дочитать остальные символы слова до конца (передавая эти символы в correct(char ch)) и если вернется что-то другое удалять слово.
Vaizardo
0 / 0 / 0
Регистрация: 13.11.2010
Сообщений: 18
13.11.2010, 21:00  [ТС]     Ошибка #18
valeriikozlov, честно, не сильно понел что вы сказали, если вас не затруднит, напишите пожалуйсто как это должно выглядеть...
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.11.2010, 21:24     Ошибка #19
Не полностью код, но можно так:
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
#include <windows.h>
#include <cstdlib>
#include <iostream>
#include <cstdio>
#pragma hdrstop
#include <conio.h>
#include <string.h>
using namespace std;
 
bool correct(char ch)
{                      
              if ((ch >= 'a'&& ch <= 'z')||(ch >= 'A' && ch <= 'Z'))
                  return false;
              else return true;
}
 
int main(int argc, char* argv[])
{
        char str[256];  int len;
cout<<"Vvedite stroky";
        gets(str);
        len=(int)strlen(str);
bool fl, fl1;
for(int i=0; i<len; i++)
{
    if(str[i]!=' ' || str[i]!='\n')
    {
        fl=correct(str[i]);
        fl1=true;
    }
    while(str[i]!=' ' || str[i]!='\n')
    { 
        if(fl!=correct(str[i]))
            fl1=false;
    }
    if(!fl1)
        //удаляем слово (т.к. оно состоит из смешанных символов)
 
 
}
// здесь вывод оставшихся слов
 
        getch ();
        return 0;
}
PS. Здесь нет проверки на то что символы например цифры или еще какие-нибудь, кроме букв
Vaizardo
0 / 0 / 0
Регистрация: 13.11.2010
Сообщений: 18
13.11.2010, 22:39  [ТС]     Ошибка #20
valeriikozlov , спасибо большое)
Yandex
Объявления
13.11.2010, 22:39     Ошибка
Ответ Создать тему
Опции темы

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