ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

18.10.2009, 14:35
|
|
Участник форума
Регистрация: 10.10.2009
Сообщений: 133
Провел на форуме: 143706
Репутация:
-1
|
|
Возникла ещё проблема - хочу без использования методов класса в мэйне вывести значение компонента х класса Sum,а мне метод возвращает адрес на этот компонент,а не его содержимое.Как исправить ?
PHP код:
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
class Sum {
public:
int x,y,s;
int vhod_1(int x) { x = 5;}
int vhod_2(int y) { y = 3;}
};
int main() {
Sum fuck,*s = &fuck;
cout << s -> vhod_1(5);
getch();
}
|
|
|

18.10.2009, 14:51
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
int vhod_1(int x) { x = 5;}
Ты здесь видишь что бы где то значение возвращалось? я нет.
|
|
|

18.10.2009, 14:52
|
|
Участник форума
Регистрация: 10.10.2009
Сообщений: 133
Провел на форуме: 143706
Репутация:
-1
|
|
А как же int перед методом ?Понял свою ошибку...А адрес вернулся на что ?На метод чтоли? Если так,то тогда как два метода могут размещаться по одному адресу ? У меня вернуло 2293116 или вроде того,когда я обращался к двум методам после двух компиляций.
Последний раз редактировалось GenTao; 18.10.2009 в 14:54..
|
|
|

18.10.2009, 14:55
|
|
Познающий
Регистрация: 23.09.2007
Сообщений: 75
Провел на форуме: 938032
Репутация:
86
|
|
Сообщение от GenTao
PHP код:
Sum fuck,*s = &fuck;
cout << s -> vhod_1(5);
йопт, GenTao, на предыдущей странице писал про приоритет оператора "<<". В скобках надо писать:
std::cout << (s -> vhod_1(5));
|
|
|

18.10.2009, 15:25
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
А адрес вернулся на что ?На метод чтоли? Если так,то тогда как два метода могут размещаться по одному адресу ? У меня вернуло 2293116 или вроде того,когда я обращался к двум методам после двух компиляций.
возвращается значение регистра eax. т.е. рандомный мусор. так же будет если использовать неинициализированную локальную переменную.
PS: x - не компонента. это поле, член данное. В какой буке поле называют компонентой?
|
|
|

18.10.2009, 15:38
|
|
Участник форума
Регистрация: 10.10.2009
Сообщений: 133
Провел на форуме: 143706
Репутация:
-1
|
|
Компонент х всмысле переменная).А книга наз. Программирование на С++ Хоменко какого-то
|
|
|

19.10.2009, 01:45
|
|
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме: 262809
Репутация:
21
|
|
Хотел написать простенькую програмульку которая читает из файла строки и по указанному раделителю заносит результат в другой файл.
Пример:
входной файл
тратата : не нужная ***ня
выходной
тратата
вот код, он компилируеться, но при выполнении выдает ошибку str2 being used without beiing defined.
Может дело в файле или еще что-то
вот сам код
Код:
// word_parser.cpp : Defines the entry point for the console application.
//
#include <iostream>
using namespace std;
int main()
{
FILE *fp,*fp2;
unsigned int t;
char buff[100],*str,*str2;
fp=fopen("keys.txt","r+");
fp2=fopen("key_pasrse.txt","w+");
while(!feof(fp)){
str=fgets(buff,100,fp);
t=strspn(str,":");
strncpy(str2,str,t+1);
fputs(str2,fp2);
}
return 0;
Спасибо.
|
|
|

19.10.2009, 01:55
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
str2 - указатель, содержащий мусор(пару постов выше прочитай мой). ты используешь переменную не задав ей значения. в данном случае ты пытаешься писать в хзкакой участок памяти.
|
|
|

19.10.2009, 02:05
|
|
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме: 262809
Репутация:
21
|
|
2Ra$cal
Я пробовал str2= new char[100];
тогда просто при выполнении выдавало ошибку и предлагала дизасемблировать. Уже начал заниматься шаманством, но помоему вредный процесс работа программы это же не волшебство. Так что взываю к сообществу, направить на путь.
|
|
|

19.10.2009, 02:15
|
|
Познающий
Регистрация: 16.10.2009
Сообщений: 40
Провел на форуме: 152013
Репутация:
14
|
|
Сообщение от Gin
2Ra$cal
Я пробовал str2= new char[100];
тогда просто при выполнении выдавало ошибку и предлагала дизасемблировать. Уже начал заниматься шаманством, но помоему вредный процесс работа программы это же не волшебство. Так что взываю к сообществу, направить на путь.
Я не знаю ни С не С++, и все таки, а нельзя сделать что то вроде:
str=str.Replace(':','\n') ?
Это я написал как на C# но думаю функция Replace и в С должна быть)))
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|