- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Привет всем обитателям раздела :)
Столкнулся с такой проблемой..
Есть простенькая задача на с++ переводящая число из 10 системы счисления в 16. Число для перевода вводится с клавиатуры.
Нужно сделать, чтобы число бралось из файла, т.е. программку нужно немного доработать, должно быть несложно. Если кто разбирается, помогите, буду благодарен :)
Программа переводит числа из 10-ой системы счисления в 16-ую
*/
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
using namespace std;
int preobr(int y) // функция преобразования в 16-ое число
{
char s[11];
int m[11];
int o,c,d,i,k,j;
i=0;
o=0;
c=y;
d=0;
while (c!=0)
{
o=c%16;
c=c/16;
m=o;
i=i+1;
}
k=i-1; // определяем номер последнего заполненного элемента массива m
j=0;
for (i=k;i>-1;i--) // конвертируем числа в 16-ый код
{
if (m==0) s[j]='0';
if (m==1) s[j]='1';
if (m==2) s[j]='2';
if (m==3) s[j]='3';
if (m==4) s[j]='4';
if (m==5) s[j]='5';
if (m==6) s[j]='6';
if (m==7) s[j]='7';
if (m==8) s[j]='8';
if (m==9) s[j]='9';
if (m==10) s[j]='A';
if (m==11) s[j]='B';
if (m==12) s[j]='C';
if (m==13) s[j]='D';
if (m==14) s[j]='E';
if (m==15) s[j]='F';
j=j+1;
}
s[k+1]='\0'; // заносим 0-ой символ в конец строки
if (y==0) printf("0 \n"); else
printf("%s \n",s);
return 0;
}
int main(int argc, char *argv[])
{
int x;
char c[10];
x=0;
do
{
printf("Vvedite celoe chislo: \n");
scanf("%s",&c);
x=atoi(c);
}
while ((x==0) && (c[0]!='\0') && (c[0]!='0'));
preobr(x);
system("PAUSE");
return 0;
}
я вот не понял :)
чем вам - http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/
не угодил?
я вот не понял :)
чем вам - http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/
не угодил?
Для меня программирование это тёмный лес :)
int main(int argc, char *argv[])
{
int x;
char c[10];
x=0;
FILE * pFile;
char с[10];
pFile = fopen ("myfile.txt" , "r");
if (pFile == NULL) perror ("Error opening file");
else {
fgets (с , 10 , pFile);
fclose (pFile);
x=atoi(c);
preobr(x);
}
system("PAUSE");
return 0;
}
char* preobr(int y)
{
static char buf[10];
sprintf(char, "0x%X", y);
return buf;
}
int main...
Не заработал твой вариант, при любом значении в файле, отдается 0.
Всё ещё нужна помощь.
Программа переводит числа из 10-ой системы счисления в 16-у, значения берёт из файла
*/
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
using namespace std;
int preobr(int y) // функция преобразования в 16-ое число
{
char s[11];
int m[11];
int o,c,d,i,k,j;
i=0;
o=0;
c=y;
d=0;
while (c!=0)
{
o=c%16;
c=c/16;
m=o;
i=i+1;
}
k=i-1; // определяем номер последнего заполненного элемента массива m
j=0;
for (i=k;i>-1;i--) // конвертируем числа в 16-ый код
{
if (m==0) s[j]='0';
if (m==1) s[j]='1';
if (m==2) s[j]='2';
if (m==3) s[j]='3';
if (m==4) s[j]='4';
if (m==5) s[j]='5';
if (m==6) s[j]='6';
if (m==7) s[j]='7';
if (m==8) s[j]='8';
if (m==9) s[j]='9';
if (m==10) s[j]='A';
if (m==11) s[j]='B';
if (m==12) s[j]='C';
if (m==13) s[j]='D';
if (m==14) s[j]='E';
if (m==15) s[j]='F';
j=j+1;
}
s[k+1]='\0'; // заносим 0-ой символ в конец строки
if (y==0) printf("0 \n"); else
printf("%s \n",s);
return 0;
}
int main(int argc, char *argv[])
{
int x;
char c[10];
x=0;
FILE * pFile;
char с[10];
pFile = fopen ("myfile.txt" , "r");
if (pFile == NULL) perror ("Error opening file");
else {
fgets (с , 10 , pFile);
fclose (pFile);
x=atoi(c);
preobr(x);
}
system("PAUSE");
return 0;
}
Если еще актуально держите, путь к файлу замените на тот что вам нужно, можно относительный. Извините, неудержался и немножко подчистил ваш код