Обсуждение Программирование на C/C++

G

goodenough

Добрый день! Помогите разобратся с функциями ( делаю первые шаги в С++, компилятор С++ Builder 6)
Цель: создать функцию Proba с двумя переменными и получить результат z=x*y и вывести
код:

int main(int argc, char* argv[])
{ float B,A,C,x1,x2,x,y,D,z,i;

proba ( float x,float y,float z)
{
z=x*y;
printf("z=%f",z);
}

proba (2,5);
}

Выдается ошибка - undefined function proba.. Что сделано не так?
 

Nickolay_Mulko

Ословед
Добрый день! Помогите разобратся с функциями ( делаю первые шаги в С++, компилятор С++ Builder 6)
Цель: создать функцию Proba с двумя переменными и получить результат z=x*y и вывести
код:

int main(int argc, char* argv[])
{ float B,A,C,x1,x2,x,y,D,z,i;

proba ( float x,float y,float z)
{
z=x*y;
printf("z=%f",z);
}

proba (2,5);
}

Выдается ошибка - undefined function proba.. Что сделано не так?

ого.
Вынеси функцию proba из main -> выше ее отдельно вляпай
 

grid

Ословед
Добрый день! Помогите разобратся с функциями ( делаю первые шаги в С++, компилятор С++ Builder 6)
Цель: создать функцию Proba с двумя переменными и получить результат z=x*y и вывести
код:

int main(int argc, char* argv[])
{ float B,A,C,x1,x2,x,y,D,z,i;

proba ( float x,float y,float z)
{
z=x*y;
printf("z=%f",z);
}

proba (2,5);
}

Выдается ошибка - undefined function proba.. Что сделано не так?
перед функцией надо указывать возвращаемое значение, в твоем случае void (ничего не возвращает) + у тебя определена функция с тремя параметрами, а ты передаешь два. Функцию нельзя определять в другой функции.
PHP:
#include <iostream>
void proba (float x, float y){
    float z = x*y;
    printf("z=%f",z);
}
int main(){
    proba (2,5);
    return 0;
}
 

reboot

Ословед
Добрый вечер!
У меня возник небольшой, но для меня очень важный вопрос.
Написал прогу в которой нужно подсчитать количество слов во вводимой строке. Задача не представляет из себя ничего сложного, но по условию слова разделяются пробелами.
Собственно проблема в том, что при вводе строки через оператор cin вводится всё до первого пробела, всё что после,я так понял, должно сохраниться в следующей строковой переменной, а мне надо всё в одну.
Вот собственно и вся проблема. Как мне быть? Подскажите пожалуйста!

p.s. Строковую переменную задаю вот так:
char *s;
 

    JIECHuK

    очки: 19
    Нет комментариев

Nickolay_Mulko

Ословед
А с чего ты взял что в следующей переменной - то.
Все в одной и сохранится думаю.
Напомню что С уже лет 12 не занимаюсь, но запомнилось мне так.
Скорее не пойму, почему должно быть по-другому.
 

JIECHuK

Ословед
Добрый вечер!
У меня возник небольшой, но для меня очень важный вопрос.
Написал прогу в которой нужно подсчитать количество слов во вводимой строке. Задача не представляет из себя ничего сложного, но по условию слова разделяются пробелами.
Собственно проблема в том, что при вводе строки через оператор cin вводится всё до первого пробела, всё что после,я так понял, должно сохраниться в следующей строковой переменной, а мне надо всё в одну.
Вот собственно и вся проблема. Как мне быть? Подскажите пожалуйста!

p.s. Строковую переменную задаю вот так:
char *s;

помоему, функция gets() сохраняет всю строку
 

    reboot

    очки: 9
    Спасибо! Попробую разобраться...

Nickolay_Mulko

Ословед
Да да - и gets тоже.
Тока он про потоки говорит "cin"
Но как бы причем здесь разделение - не въеду никак.
 

CrazyBolt

Ословед
Добрый вечер!
У меня возник небольшой, но для меня очень важный вопрос.
Написал прогу в которой нужно подсчитать количество слов во вводимой строке. Задача не представляет из себя ничего сложного, но по условию слова разделяются пробелами.
Собственно проблема в том, что при вводе строки через оператор cin вводится всё до первого пробела, всё что после,я так понял, должно сохраниться в следующей строковой переменной, а мне надо всё в одну.
Вот собственно и вся проблема. Как мне быть? Подскажите пожалуйста!
p.s. Строковую переменную задаю вот так:
char *s;
cin.getline тебе в помощь
PS. пользоваться cin в связке с char* - это примерно тоже самое, что ездить на мерсе и курить приму
PS2. а память под строку кто выделять будет? char *s - это ты только объявил указатель...
 

    reboot

    очки: 9
    Спасибо! Попробую разобраться
Всем доброго :)
Люди, подскажите, пожалуйста функцию, возвращающую код символа. Т.е. указана кодировка, нужно узнать код введенного символа.
 
G

goodenough

Помогите пожалуйста с элементарной задачей

почему если я напишу банальный цикл
int i;


for (i = 0; i < 11;i=i+1)
{

printf("\n%f",i);

}

при попытке вывода i в цикле получаются нули? ведь идет наращивание за каждый ход цикла на единицу??
 
P

Prof. BiG BanG

Код:
int i;
for (i = 0; i < 11;i=i+1)
{

printf("[COLOR="Red"]%i[/COLOR]\n",i);

};
для вывода целых чисел: %i
 

Promises...

Ословед
Помогите, пытаюсь изменить системное время в Visual C++:

GetSystemTime(&st); // получаем текущее время
st.wHour = hour; // устанавливаем часы
st.wMinute = minutes; // и минуты
SetSystemTime(&st);

SetSystemTime() не выполняет своих обязанностей, st имеет верные параметры, но почему-то системному времени они не присваиваются, в чем мб причина?
 
P

Prof. BiG BanG

Помогите, пытаюсь изменить системное время в Visual C++:

GetSystemTime(&st); // получаем текущее время
st.wHour = hour; // устанавливаем часы
st.wMinute = minutes; // и минуты
SetSystemTime(&st);

SetSystemTime() не выполняет своих обязанностей, st имеет верные параметры, но почему-то системному времени они не присваиваются, в чем мб причина?
Может быть
The SetSystemTime function fails if the calling process does not have the SE_SYSTEMTIME_NAME privilege. This privilege is disabled by default. Use the AdjustTokenPrivileges function to enable this privilege and again to disable it after the time has been set.
ТО есть, процесс сначала должен установить привилегии SE_SYSTEMTIME_NAME с помощью функции AdjustTokenPrivileges

Вот пример кода
Код:
#include <stdio.h>
#include <windows.h>

int main(int argc, const char* argv[]) {
 HANDLE hThreadToken;
 HANDLE hAppThread = GetCurrentProcess();
 if (!OpenThreadToken(hAppThread,TOKEN_ADJUST_PRIVILEGES,TRUE,&hThreadToken))
 {
  DWORD dwError = GetLastError();  // returns error 1008
 }
 else
 {
  TOKEN_PRIVILEGES tp;
  LUID luid;

  if (!LookupPrivilegeValue(NULL,SE_SYSTEMTIME_NAME,&luid))
  {
   DWORD dwError = GetLastError();
  }
  else
  {
   tp.PrivilegeCount = 1;
   tp.Privileges[0].Luid = luid;
   tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
   if (!AdjustTokenPrivileges (hThreadToken,FALSE,&tp,0,NULL,NULL))
   {
    DWORD dwError = GetLastError();
   }
  }
  CloseHandle (hThreadToken);
 };
 
 SYSTEMTIME st;
 GetSystemTime(&st);

 st.wHour=10;
 SetSystemTime(&st);
 
return 0;
};
 

HD Radio

HDR | LOUNGE & CHILL [AAC-LC 192 kbps]
  • Сверху