Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

16.12.2008, 15:56
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
strcmp
itoa
|
|
|

17.12.2008, 02:15
|
|
Участник форума
Регистрация: 29.12.2004
Сообщений: 105
Провел на форуме: 89596
Репутация:
21
|
|
Не могу понять по поводу 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 если иначе. Так эта прога вообще почти никак не работает. =( Почему он делает не так как надо?
|
|
|

17.12.2008, 02:36
|
|
Участник форума
Регистрация: 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;
}
вот
|
|
|

17.12.2008, 02:40
|
|
Участник форума
Регистрация: 29.12.2004
Сообщений: 105
Провел на форуме: 89596
Репутация:
21
|
|
Сообщение от ToniKapuchon
вот
а зачем нужны вот эти параметры у главной функции: int argc, _TCHAR* argv[] ??? и откуда они взялись?
|
|
|

17.12.2008, 02:47
|
|
Banned
Регистрация: 06.10.2006
Сообщений: 288
Провел на форуме: 2741921
Репутация:
469
|
|
это дополнительные параметры которые можно передать при запуске программы через командную строку.
т.е.
cmd > program.exe vasya pupkin
argc - это счетчик
argv[] - массив с переданными параметрами
argv[0] - содержит полный путь и имя программы
argv[1] = vasya
argv[2] = pupkin
|
|
|

17.12.2008, 04:12
|
|
Участник форума
Регистрация: 29.12.2004
Сообщений: 105
Провел на форуме: 89596
Репутация:
21
|
|
Сообщение от Underwit
это дополнительные параметры которые можно передать при запуске программы через командную строку.
т.е.
cmd > program.exe vasya pupkin
argc - это счетчик
argv[] - массив с переданными параметрами
argv[0] - содержит полный путь и имя программы
argv[1] = vasya
argv[2] = pupkin
Разобрался, всё понятно! =)
Спасибо большое!
|
|
|

17.12.2008, 17:40
|
|
Познающий
Регистрация: 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..
|
|
|
Доброго времени суток! =) |

18.12.2008, 20:40
|
|
Участник форума
Регистрация: 29.12.2004
Сообщений: 105
Провел на форуме: 89596
Репутация:
21
|
|
Доброго времени суток! =)
У меня очередной вопрос по С:
Возможно ли в С разбить натуральное число по цифрам так, чтобы каждая цифра числа оказалась бы отдельным элементом массива?
|
|
|

18.12.2008, 20:45
|
|
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) Удивительная вещь. |

19.12.2008, 00:41
|
|
Участник форума
Регистрация: 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..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|