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

06.04.2008, 18:34
|
|
Познающий
Регистрация: 15.01.2007
Сообщений: 41
Провел на форуме: 267196
Репутация:
6
|
|
1) кавычки
2) добавь using namespace std;
3) не coun, а cout
4) не прально написана SysNameBuffer в GetVolumeInformation
5) не прально MCLength в GetVolumeInformation
5) ошибки в скобках
7) кароче исправил, вот что получилось:
Код:
#include <windows.h>
#include <iostream>
using namespace std;
void main()
{
char NameBuffer[MAX_PATH];
char SysNameBuffer[MAX_PATH];
DWORD VSNumber;
DWORD MCLength;
DWORD FileSF;
TCHAR root[]="C:\\";
BOOL info = GetVolumeInformation(root, NameBuffer, sizeof(NameBuffer), &VSNumber, &MCLength, &FileSF, SysNameBuffer, sizeof(SysNameBuffer));
if (info)
{
cout << NameBuffer << endl;
cout << SysNameBuffer << endl;
cout << VSNumber << endl;
}
}
В настройках проекта, поставь Use Multi-Byte Character Set, вместо unicode
|
|
|

07.04.2008, 00:08
|
|
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме: 233095
Репутация:
21
|
|
Народ, вобщем есть немного одна проблемка. тут минипрога которая должна считать колличество символов и при желании пользователя повторять эту процедуру. Она работает только 1 раз, все остальные она проскакивает, не давая ввести слова, автоматически ставля 0 и переходит к вопросу о выборе действия - повторить или выйти. Помогите плз решить эту задачку - я уже много вариантов пробовал - не выходит(
#include<iostream>
using namespace std;
int main()
{
int again;
begin:
char szInput[256];
puts ("\n\n\n\nEnter a sentence: ");
gets(szInput);
printf("\n\n\t\tThe sentence entered is %u characters long)\n",strlen(szInput));
puts("\n\n\t\t\t*** Third task completed ***");
printf("\n\n\nagain? 1 - yes\n");
cin >> again;
if(again == 1)
{
goto begin;}
return 0;
}
Последний раз редактировалось horlyk; 07.04.2008 в 00:12..
|
|
|

07.04.2008, 09:47
|
|
Познающий
Регистрация: 08.03.2007
Сообщений: 65
Провел на форуме: 91259
Репутация:
16
|
|
не юзайте вы goto! забудьте об этом как о страшном сне 90х годов!
Вынеси свой код в функцию и вызывай while(myfunction())
захочешь выйти напишешь в функции по ифу return false;
|
|
|

07.04.2008, 15:01
|
|
Moderator - Level 7
Регистрация: 07.03.2008
Сообщений: 568
Провел на форуме: 4140471
Репутация:
708
|
|
Код:
#include<iostream>
using namespace std;
int again;
char szInput[256];
int main()
{
for(;;)
{
puts ("\n\n\n\nEnter a sentence: ");
cin>>szInput;
printf("\n\n\t\tThe sentence entered is %u characters long)\n",strlen(szInput));
puts("\n\n\t\t\t*** Third task completed ***");
printf("\n\n\nagain? 1 - yes\n");
cin >> again;
if(again!=1)
break;
}
return 0;
}
|
|
|

07.04.2008, 19:08
|
|
Познающий
Регистрация: 17.01.2008
Сообщений: 94
Провел на форуме: 314553
Репутация:
38
|
|
есть ли в С++ функция которая находит из char массива сходный текст и возвращает его индекс?
Последний раз редактировалось KSoniX; 07.04.2008 в 19:24..
|
|
|

07.04.2008, 21:49
|
|
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
Провел на форуме: 233095
Репутация:
21
|
|
Сообщение от hackconnect
не юзайте вы goto! забудьте об этом как о страшном сне 90х годов!
Вынеси свой код в функцию и вызывай while(myfunction())
захочешь выйти напишешь в функции по ифу return false;
Может я немного не понимаю, но у меня всерано не выходит. Перенес код в отдельную ф-ю, вызывал ее через мейн так как ты говорил, через иф поставил ретурн фалсе. Не выходит чтото у меня ( Много вариантов перепробовал - все тоже самое( Помогите плз, ну не могу въехать...
|
|
|

07.04.2008, 22:01
|
|
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме: 2360904
Репутация:
1393
|
|
Сообщение от horlyk
Может я немного не понимаю, но у меня всерано не выходит. Перенес код в отдельную ф-ю, вызывал ее через мейн так как ты говорил, через иф поставил ретурн фалсе. Не выходит чтото у меня ( Много вариантов перепробовал - все тоже самое( Помогите плз, ну не могу въехать...
Чем не устраивает код что дал echobyte?
Последний раз редактировалось z01b; 07.04.2008 в 22:06..
|
|
|

07.04.2008, 22:04
|
|
Участник форума
Регистрация: 30.09.2006
Сообщений: 134
Провел на форуме: 352963
Репутация:
197
|
|
>есть ли в С++ функция которая находит из char массива сходный текст и возвращает его индекс?
Да. bsearch(), заглавник stdlib.h возвращает указатель на элемент массива
|
|
|

07.04.2008, 22:06
|
|
Участник форума
Регистрация: 30.09.2006
Сообщений: 134
Провел на форуме: 352963
Репутация:
197
|
|
horlyk
Значит условие ложное раз не выходит 
|
|
|

07.04.2008, 22:21
|
|
Познающий
Регистрация: 15.01.2007
Сообщений: 41
Провел на форуме: 267196
Репутация:
6
|
|
2 horlyk: А чем тебя не устраивает вышеописанный вариант вариант?
Код:
#include <iostream.h>
using namespace std;
int again;
char szInput[256];
int main()
{
for(;;)
{
puts ("\n\n\n\nEnter a sentence: ");
cin>>szInput;
printf("\n\n\t\tThe sentence entered is %u characters long)\n",strlen(szInput));
puts("\n\n\t\t\t*** Third task completed ***");
printf("\n\n\nagain? 1 - yes\n");
cin >> again;
if(again!=1)
break;
}
return 0;
}
Только надо добавить:
#include <string.h>
#include <stdio.h>
Ну или хочешь то можно и так:
Код:
#include <iostream.h>
#include <string.h>
#include <stdio.h>
int myfunc();
int again=1;
char szInput[256];
int main()
{
while (again==1)
{
myfunc();
}
return 0;
}
int myfunc()
{
puts ("\n\n\n\nEnter a sentence: ");
cin>>szInput;
printf("\n\n\t\tThe sentence entered is %u characters long\n",strlen(szInput));
puts("\n\n\t\t\t*** Third task completed ***");
printf("\n\n\nagain? 1 - yes\n");
cin >> again;
if(again!=1)
{
return false;
}
return 0;
}
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|