Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2012, 16:42   #1
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию Немогу правильно структурировать программу.

Есть программа, в ней нужно правильно расставить скобки, я сам написал эту программу, но чую разобраться одному мне в ней не под силу = )
Вот код:
Код:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main ( int argc , char *argv[] ) {

int checkA=0 ,checkB=0;
char *arg;
//Проверяем, параметры и ключи не заданы?
if ( argc == 1 ) {
	printf ( "Параметры и ключи не заданы\n" );
	printf ( "Задайте ключи и параметры\n" );
	break;
}
else {
	//Проверяем, ключи не заданы?
	if ( argv[1][0] != '-' ) {			
		printf ( "Ключи не заданы\n" );
		printf ( "Задайте ключи\n" );
		break;				
	}
	else {
		//Начинаем разбор ключей
		for ( int i =1; i < argc - 1; i++){  // Нужно что бы этот for...
			//Проверяем, задан ли символ окончания разбора ключей - "--" ?
			if ( argv[i][1] == '-' ) {
				printf ("Конец разбора ключей\n");
				break;
			}
		   else {
		      //Проверяем, ключ -a использовался?
		   	if ( argv[i][1] == 'a')
					checkA = 1;	
				//Проверяем, ключ -b использовался?	
				if ( argv[i][1] == 'b')
					checkB = 1;
				//Проверяем, среди заданных ключей, есть некорректные ключи?	
				if ( argv[i][1] != 'a' && argv[i][1] != 'b' && argv[i][1] != 'd' && argv[i][1] != 'c' ){   		
					printf( "Ключ %s - некорректен\n", argv[i] );
					break;
				}	 
				}	
				//... кончался здесь.
				else {
					//Проверяем, использовались ли несовместимые ключи?
					if ( checkA == 1 && checkB == 1 ) { 
						printf ( "Ключи -a и -b - нельзя использовать вместе\n" );
						break; 
					}
					else {
					      //Проверяем, параметр был задан?
							if ( argv[argc - 1][0] != '-' ) {
								arg = malloc ( strlen ( argv[i] ) +1 );
								strcpy ( arg, argv[i]);
								printf ( "Задан параметр - %s\n", arg );	
							}
							else {
								printf ( "Параметр не задан\n");
								printf ( "Задайте параметр\n");
							}		
					}
				}
			}
Подскажите, как это сделать?
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 30.03.2012, 09:32   #2
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Код:
int main ( int argc , char *argv[] )
{
	int checkA=0 ,checkB=0;
char *arg;
//Проверяем, параметры и ключи не заданы?
if ( argc == 1 )
{
	printf ( "Параметры и ключи не заданы\n" );
	printf ( "Задайте ключи и параметры\n" );
	return 1;
}
else
{
	//Проверяем, ключи не заданы?
	if ( argv[1][0] != '-' )
	{
		printf ( "Ключи не заданы\n" );
		printf ( "Задайте ключи\n" );
		return 1;
	}
	else
	{
		//Начинаем разбор ключей
		for ( int i =1; i < argc - 1; i++)
		{  // Нужно что бы этот for...
			//Проверяем, задан ли символ окончания разбора ключей - "--" ?
			if ( argv[i][1] == '-' )
			{
				printf ("Конец разбора ключей\n");
				break;
			}
		   else
		   {
			  //Проверяем, ключ -a использовался?
			if ( argv[i][1] == 'a')
					checkA = 1;
				//Проверяем, ключ -b использовался?
				if ( argv[i][1] == 'b')
					checkB = 1;
				//Проверяем, среди заданных ключей, есть некорректные ключи?
				if ( argv[i][1] != 'a' && argv[i][1] != 'b' && argv[i][1] != 'd' && argv[i][1] != 'c' )
				{
					printf( "Ключ %s - некорректен\n", argv[i] );
					break;
				}
		   }

				//... кончался здесь.

					//Проверяем, использовались ли несовместимые ключи?
					if ( checkA == 1 && checkB == 1 )
					{
						printf ( "Ключи -a и -b - нельзя использовать вместе\n" );
						break;
					}
					else
					{
						  //Проверяем, параметр был задан?
							if ( argv[argc - 1][0] != '-' )
							{
								arg = (char*)malloc(strlen ( argv[i] ) +1 );
								strcpy ( arg, argv[i]);
								printf ( "Задан параметр - %s\n", arg );
							}
							else
							{
								printf ( "Параметр не задан\n");
								printf ( "Задайте параметр\n");
							}
					}

		   }
	 }
  }
  return 0;
}
Я скобки тебе расставил, но программу написал ты сам, и чую с логикой придется тебе самому ковыряться =).
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
немогу правильно сформировать запрос Gul'ka SQL, базы данных 1 02.12.2011 09:48
Немогу вспомнить программу webstream HTML и CSS 0 25.01.2011 11:41
Как лучше структурировать БД? MrJenika PHP 5 04.12.2010 18:10
Немогу правильно закончить Todeskin Visual C++ 8 08.09.2010 12:19