| imho.ws |
![]() |
|
|
|
# 1 |
|
Junior Member
Регистрация: 17.08.2003
Пол: Male
Сообщения: 80
![]() |
Нужна помощь по C
Как сделать чтобы прога на C (не ++) в конце цикла выдавала запрос что-то вроде "повторить операцию? y/n". При y соответственно прога начинала выполняться заново, при n вырубалась. (закрывалась окно).
|
|
|
|
|
# 3 |
|
::VIP::
Регистрация: 17.12.2002
Адрес: Q-ata, Israel
Сообщения: 310
![]() ![]() ![]() ![]() ![]() |
пример:
Код:
void MyFunc()
{
// your code here
}
void main()
{
char ch=' '
do
{
MyFunc();
do
{
printf("повторить операцию? y/n :");
scanf("%c",&ch);
}
while (ch!='y' && ch!='Y' && ch!='n' && ch!='N');
}
while (ch!='n' && ch!='N');
}
|
|
|
|
|
# 5 |
|
Junior Member
Регистрация: 17.08.2003
Пол: Male
Сообщения: 80
![]() |
1. Короче вот в чем проблема. Есть кусок кода. (ниже). Суть в том, что из 3 вариантов надо выбрать один нажатием соответственно 1,2 или 3. Если юзер нажимает символ, отличный от 1,2 или 3, то должно выскакивать сообщение, что "введите 1,2 или 3". Херня в том что сообщение вылазит два раза подряд (при вводе других символов). Как эту багу исправить?
********************************************************* #include <stdio.h> main() { char s; printf("Please enter 1, 2 or 3" ); while(s!='1' && s!='2' && s!='3') { scanf("%c", &s); if(s!='1' && s!='2' && s!='3') printf("Please, enter the number 1, 2 or 3.\n\n"); } } ********************************************************* 2. И еще. Короче такая фигня. #include <stdio.h> main() { int x=2,y=6; int z; z=x+y; printf("%d",z); } Как мне результат (z) записать в файл? (например result.txt). |
|
|
|
|
# 7 |
|
Member
Регистрация: 02.05.2003
Адрес: Бельгия
Сообщения: 201
![]() |
Так ФИ!!!
************************************************** ******* #include <stdio.h> main() { char s; //printf("Please enter 1, 2 or 3" ); while(s!='1' && s!='2' && s!='3') { // вот будет один раз выскакивать! printf("Please, enter the number 1, 2 or 3.\n\n"); scanf("%c", &s); if(s!='1' && s!='2' && s!='3') //printf("Please, enter the number 1, 2 or 3.\n\n"); } } ************************************************** А про файлы с С не знаю... про ++ могу сказать. ******* |
|
|
|
|
# 8 |
|
::VIP::
Старик Похабыч Регистрация: 21.07.2002
Адрес: Колодец
Сообщения: 718
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
chast' intera pri sleduyushem scanf zahodit v "s", mozhno reshit' tak (chut' podpraviv if) :
if(s!='1' && s!='2' && s!='3'&&s!=10) sky7 v tvoem sluchae problema ostanetsa
__________________
поручик Ржевский
Последний раз редактировалось ArchiMage; 27.08.2003 в 00:55. |
|
|
|
|
# 9 | |
|
Junior Member
Регистрация: 17.08.2003
Пол: Male
Сообщения: 80
![]() |
Цитата:
|
|
|
|
|
|
# 10 | |
|
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отсек
Пол: Male
Сообщения: 14 501
![]() |
Цитата:
|
|
|
|
|
|
# 12 |
|
::VIP::
Старик Похабыч Регистрация: 21.07.2002
Адрес: Колодец
Сообщения: 718
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Tulip
dlya samogo yazyka ne vazhno chto ty podruzamevaesh pod char, dlya nego eto cifry ot 0 do 255... klavisha "ENTER" sostoit iz dvuh bukv : 10 i 13 po tablice ASCII , pri nazhatii etoj klavishy posle vvoda chast' ee zajdet v sleduyushem vvode Добавлено через 2 минуты: CапёР "if(s<'1' || s>'3')" opyat' ta-zhe porblema s interom, on primet snachala bukvu a potom kogda zanovo zajdet v while primet 10 ot intera
__________________
поручик Ржевский
|
|
|
|
|
# 13 | ||
|
::VIP::
Регистрация: 17.12.2002
Адрес: Q-ata, Israel
Сообщения: 310
![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
Код:
if(s<32)
{//ignore
}
else if(s<'1' || s>'3')
{
printf("Enter number from 1 to 3\n");
}
|
||
|
|
|
|
# 19 |
|
Junior Member
Регистрация: 17.08.2003
Пол: Male
Сообщения: 80
![]() |
А вот, еще такой вопрос:
В качестве примера приведу простенький код: ******************* #include <stdio.h> main() { int x; printf("Enter x: "); scanf("%d",&x); } ******************* Как в данной ситуации сделать ограничение на ввод? Имеется ввиду например если с клавы буден введен скажем символ, а не число. То есть как сделать чтоб вводить разрешалось только числовые данные, а ввод символов игнорировался. |
|
|
|
|
# 20 |
|
::VIP::
Регистрация: 17.12.2002
Адрес: Q-ata, Israel
Сообщения: 310
![]() ![]() ![]() ![]() ![]() |
вот например:
Код:
#include <stdio.h>
#include <conio.h>
#define SIZE 20
void main(void)
{
int x;
char buffer[SIZE], ch;
int i;
printf("Enter x: ");
ch = 0;
i = 0;
while (i<SIZE-2)
{
ch = getch();
if (ch=='-' && i==0)
{
buffer[i] = ch; // '-' on 1st place = NEGATIVE NUMBER
putch(ch);
i++;
}
else if (ch>='0' && ch <='9')
{
buffer[i] = ch; // add to buffer
putch(ch);
i++;
}
else if (ch==10 || ch==13)
{
break; // user press enter
}
else
{
putch(7); // wrong key = BEEP
}
}
buffer[i] = '\0'; // end of string
printf("\n");
sscanf(buffer,"%d",&x);
printf("%d",x);
}
|
|
|