ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2031  
Старый 16.12.2008, 15:56
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

strcmp
itoa
 
Ответить с цитированием

  #2032  
Старый 17.12.2008, 02:15
VIP
Участник форума
Регистрация: 29.12.2004
Сообщений: 105
Провел на форуме:
89596

Репутация: 21
Отправить сообщение для VIP с помощью ICQ
По умолчанию

Не могу понять по поводу strcmp:

Код:
# include <stdio.h>
# include <string.h>

int main() {
    char *buffer;
    int a;
    printf("Enter a, please:");
    scanf("%s", &buffer);
    
    if (strcmp(buffer, "END")) {
                       printf("END_NO");
                       }
    else {
         printf("END_OK");
         }
}
Должна выводить END_OK если введено END, и END_NO если иначе. Так эта прога вообще почти никак не работает. =( Почему он делает не так как надо?
 
Ответить с цитированием

  #2033  
Старый 17.12.2008, 02:36
ToniKapuchon
Участник форума
Регистрация: 26.02.2006
Сообщений: 209
Провел на форуме:
2418438

Репутация: 93
По умолчанию

Цитата:
#include "stdafx.h"
# include <stdio.h>
# include <string.h>

int _tmain(int argc, _TCHAR* argv[])
{
char buffer[15];
int a;
printf("Enter a, please:");
scanf("%s", &buffer);

if (strcmp(buffer, "END")) {
printf("END_NO");
}
else {
printf("END_OK");
}
return 0;
}
вот
 
Ответить с цитированием

  #2034  
Старый 17.12.2008, 02:40
VIP
Участник форума
Регистрация: 29.12.2004
Сообщений: 105
Провел на форуме:
89596

Репутация: 21
Отправить сообщение для VIP с помощью ICQ
По умолчанию

Цитата:
Сообщение от ToniKapuchon  
вот
а зачем нужны вот эти параметры у главной функции: int argc, _TCHAR* argv[] ??? и откуда они взялись?
 
Ответить с цитированием

  #2035  
Старый 17.12.2008, 02:47
Underwit
Banned
Регистрация: 06.10.2006
Сообщений: 288
Провел на форуме:
2741921

Репутация: 469
По умолчанию

это дополнительные параметры которые можно передать при запуске программы через командную строку.
т.е.
cmd > program.exe vasya pupkin
argc - это счетчик
argv[] - массив с переданными параметрами

argv[0] - содержит полный путь и имя программы
argv[1] = vasya
argv[2] = pupkin
 
Ответить с цитированием

  #2036  
Старый 17.12.2008, 04:12
VIP
Участник форума
Регистрация: 29.12.2004
Сообщений: 105
Провел на форуме:
89596

Репутация: 21
Отправить сообщение для VIP с помощью ICQ
По умолчанию

Цитата:
Сообщение от Underwit  
это дополнительные параметры которые можно передать при запуске программы через командную строку.
т.е.
cmd > program.exe vasya pupkin
argc - это счетчик
argv[] - массив с переданными параметрами

argv[0] - содержит полный путь и имя программы
argv[1] = vasya
argv[2] = pupkin
Разобрался, всё понятно! =)

Спасибо большое!
 
Ответить с цитированием

  #2037  
Старый 17.12.2008, 17:40
xismyname
Познающий
Регистрация: 07.09.2008
Сообщений: 79
Провел на форуме:
272452

Репутация: 10
По умолчанию

Цитата:
Сообщение от VIP  
Не могу понять по поводу strcmp:

Код:
# include <stdio.h>
# include <string.h>

int main() {
    char *buffer;
    int a;
    printf("Enter a, please:");
    scanf("%s", &buffer);
    
    if (strcmp(buffer, "END")) {
                       printf("END_NO");
                       }
    else {
         printf("END_OK");
         }
}
Должна выводить END_OK если введено END, и END_NO если иначе. Так эта прога вообще почти никак не работает. =( Почему он делает не так как надо?

1.Tы создал указатель но не занял место в памяти куда будет указывать данный указатель.

2.Ошибка в scanf(),когда передаешь указатель buffer тебе незачем вставлять знак &,так как buffer указатель.
И если даже этот buffer будет статистическое поле (например buffer[16]) то все ровно знак *& не указываеться.

Если хочеш чтобы этот код работал корректно напиши так :

Код:
# include <stdio.h>
# include <string.h>

int main() {
    char *buffer;
    int a;
   
    /* Mem. allocate */
   buffer = (char*)malloc(sizeof(char) * 16);

    printf("Enter a, please:");
    scanf("%s", buffer);
    
    if (strcmp(buffer, "END")) {
                       printf("END_NO");
                       }
    else {
         printf("END_OK");
         }
}

Последний раз редактировалось xismyname; 17.12.2008 в 17:43..
 
Ответить с цитированием

Доброго времени суток! =)
  #2038  
Старый 18.12.2008, 20:40
VIP
Участник форума
Регистрация: 29.12.2004
Сообщений: 105
Провел на форуме:
89596

Репутация: 21
Отправить сообщение для VIP с помощью ICQ
По умолчанию Доброго времени суток! =)

У меня очередной вопрос по С:

Возможно ли в С разбить натуральное число по цифрам так, чтобы каждая цифра числа оказалась бы отдельным элементом массива?
 
Ответить с цитированием

  #2039  
Старый 18.12.2008, 20:45
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

2 Vip

char a[200];

itoa(number,a,10); // в деястичной itoa(number,a,16) шестнадцатиричной и по аналогии

Последний раз редактировалось Delimiter; 18.12.2008 в 20:50..
 
Ответить с цитированием

Windows Mobile C++(MFC) Удивительная вещь.
  #2040  
Старый 19.12.2008, 00:41
n4e/\@
Участник форума
Регистрация: 06.05.2008
Сообщений: 161
Провел на форуме:
1289087

Репутация: 59
По умолчанию Windows Mobile C++(MFC) Удивительная вещь.

Пишу простую программу, отправить запрос на сервер, принять ответ с сервера.
Для сокетов использую Эту библиотеку.
Все это делаю в блоке инилизации программы.
Создаю сокет, отсылаю запрос, все нормально.
дальше следующий код
Код:
        char buf[1024];
	char otvet[9999];
	mysocket.set_buffer_size(sizeof(buf));
	while (strstr(buf,"</html>")==0)
	{
	mysocket >> buf;
	strcat(otvet,buf);
	}
	mysocket.close();
компилируется, все хорошо, данные получаю правильные.
Но как только доходит до конца. (return TRUE прога вылетает с ошибкой обратся в микрософт
пишу:
Код:
	mysocket.close();
	delete []otvet; //ЧЕ ТУТ МОЖНО УДАЛИТЬ Я НЕ ЗНАЮ
и о чудо прога компилируется и работает, не каких ошибок
причем ей пофигу будули я удалять ответ или delete []buf;
она будет нормально работать.
Вот как можно объяснить такую сетуацию?
Проверял на WM6 в эмуляторе и на WM6.1 на своей коммуникаторе.
De-visible Про тему знаю, не думал что вопрос про ВМ можно отнести к разряду для новичков.
РЕШЕНИЕ: Увеличил buf и все стало нормально. Почему все работал когда писал delete [] загадка.

Последний раз редактировалось n4e/\@; 19.12.2008 в 03:53..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ