Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите пожалуйста решить проблему со словами.

Ответить
Настройки темы
C/C++ - Помогите пожалуйста решить проблему со словами.

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Проблема такая - я не пойму как например в условии if, например если я ввожу с клавиатуры слово, чтобы он в уловии if отвечал, но не дает, так как он кроме цифр и нескольких символов ничего не хочет брать, буквы задал при помощи ' ' - единичных кавычек, и типом char. Но проблема в том, что он берет только где то до 4-х символов, а если написать больше, то будет ошибка - error C2015: too many characters in constant. Не понимаю в чем дело.

Отправлено: 22:57, 13-05-2010

 

Аватара для zonderz

Ветеран


Сообщения: 727
Благодарности: 150

Профиль | Отправить PM | Цитировать


dakishi,

кто этот таинственный он?

и неплохо бы еще кусочек кода, а то, знаете ли, "принеси то - не знаю что" не очень-то...

-------
MCP, MCSA, MCSE, разработчик программы CMDTools
http://forum.oszone.net/thread-170783.html

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:39, 13-05-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


dakishi, Какой тип приложения? Консольный? Win32? Разработка секретная? Тем более что есть уже код, давайте его в студию.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 12:06, 14-05-2010 | #3


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот простой код с использованием того, что я хочу, рабочий. Это файл C++ source file - Cpp называется всегда. Ну так вот сам код:


Код: Выделить весь код
#include<iostream.h>
main()
{
char q1;
cin >> q1;
if (q1 == 'q') {
	cout << "1";
} else {
cout << "2";	
};
return main();
}
Выделено жирным то, что меня интересует, так как, если не поставить в условии 'q', а поставить 'water', то у меня компилятор выдает ошибку:

Цитата:
--------------------Configuration: Cpp1 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
C:\Documents\C++\File\Cpp1.cpp(6) : error C2015: too many characters in constant
Error executing cl.exe.

Cpp1.exe - 1 error(s), 0 warning(s)
А я хочу чтобы например можно было вводить слова в программу, а не только цифры, при условях и.т.п. Например набрать логин и пароль. И еще, zonders, этот он - компилятор.

Последний раз редактировалось Drongo, 14-05-2010 в 18:58. Причина: тег код - #


Отправлено: 18:56, 14-05-2010 | #4


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


dakishi, используй указатель.
Цитата dakishi:
return main(); »
Это неправильно. Лучше
return 0;

И отсутствует строка
Код: Выделить весь код
using namespace std;
Код: Выделить весь код
#include <iostream.h>
using namespace std;

main()
{
   char q1;

   cout << "Enter Char = ";
   cin >> q1;
   if (q1 == 'q') {
      cout << "1";
     }
   else {
     cout << "2";
     };

   cin >> q1;

return 0;
}

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 19:04, 14-05-2010 | #5


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Может быть я конечно ошибаюсь, но char это символьный тип... так как же в него тогда уместить `water`?!?!
мб использовать char *q1 либо char q1[количество символов]!!!

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:48, 14-05-2010 | #6


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


LilLoco, В принципе да, но вдруг автору нужен ввод только одного символа?

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 20:36, 14-05-2010 | #7


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата Drongo:
В принципе да, но вдруг автору нужен ввод только одного символа? »
Ну я думаю в этом случае не стоит один символ сравнивать со строкой

Цитата dakishi:
если не поставить в условии 'q', а поставить 'water »

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 20:48, 14-05-2010 | #8


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата LilLoco:
Может быть я, конечно, ошибаюсь, но char это символьный тип... так как же в него тогда уместить `water`?!?!
мб использовать char *q1 либо char q1[количество символов]!!! »
Я просто не совсем еще освоился, потому что я изучаю С++, много го еще не знаю. Но кроме char - я ничего другого не догадываюсь поставить, потому что я и знаю что он символьный, но других похожих не знаю, которые принимают не только цифры.
Вот вы сказали char*q1 или char[кол-во символов] - это писать там же, где я объявил тип переменных ? Просто дописать квадратные скобки, или знак умножения ? И еще, char[ кол-во символов] - в квадратных скобках число поставить ? А где сама переменная ? Объясните, пожалуйста. Если не трудно, пример приведите, как использовать то, что вы написали. Потому что я не очень понимаю, что значит это умножение и зачем оно, а количество символов в скобках - как пользоваться.

Отправлено: 13:48, 15-05-2010 | #9


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата dakishi:
Вот вы сказали char*q1 или char[кол-во символов] - это писать там же, где я объявил тип переменных ? Просто дописать квадратные скобки, или знак умножения ? И еще, char[ кол-во символов] - в квадратных скобках число поставить ? А где сама переменная ? Объясните, пожалуйста. Если не трудно, пример приведите, как использовать то, что вы написали. Потому что я не очень понимаю, что значит это умножение и зачем оно, а количество символов в скобках - как пользоваться. »
То что вы называете умножением это указатель, а квадратные скобки это массив. Просто LilLoco, немного запутал этим сообщением
Цитата LilLoco:
так как же в него тогда уместить `water`?!?!
мб использовать char *q1 либо char q1[количество символов]!!! »
Потому что как я понял вы вводите один символ и проверяете один символ.

Код: Выделить весь код
char ch; // в переменную 'ch' можно ввести один символ
char *ch; // Можно ввести строку символов или один символ
char ch[] = "некий массив символов"; // массив символов, хранит строку
Про указатели хорошо рассказывал El Scorpio. Но вы не спешите пугаться, всё приходит с освоением новых глав в книге или изучаемой литературе.

С указателем - * можно так.

Код: Выделить весь код
#include <iostream.h>
using namespace std;

main()
{
   char *q1;

   cout << "Enter Char = ";
   cin >> q1;
   if (*q1 == 'q') {
      cout << "1";
     }
   else {
     cout << "2";
     };

   cin >> q1;

return 0;
}

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:26, 15-05-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите пожалуйста решить проблему со словами.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Route/Bridge - Помогите решить проблему alex.t Сетевые технологии 1 10-05-2010 19:47
Помогите решить проблему shron Сетевые технологии 2 05-08-2007 02:11
Помогите решить проблему!!!! Guest Сетевые технологии 1 14-10-2004 23:46




 
Переход