Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
shaffle
1 / 1 / 0
Регистрация: 21.11.2010
Сообщений: 85
#1

Rand число в char - C++

08.11.2011, 00:16. Просмотров 1703. Ответов 25
Метки нет (Все метки)

Доброго времени суток. Ребята, очень нужна ваша подсказка... мне надо записать в файл рандомные числа (с диапазоном) через rand(). я использую FILE *stream для файлов. поэтому, мне число надо переводить в рядок
проблема в том что не работает такое

char qw[5];
qw=itoa(10,qw,5);

p.s.
10 и 5 необязательные данные, могут быть любые
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2011, 00:16     Rand число в char
Посмотрите здесь:

rand вещественное число - C++
здравствуйте не понимаю как сгенерировать случайное число для double указываю явно возникает ошибка...помогите пожалуйста ...

char в число - C++
как можно перевести char A={0x1A, 0x1B, 0x1C, 0x1D} в hex число 0x1A1B1C1D?

Вписать в массив char число - C++
Собственно как вписать в массив char число и потом как вывести это число с помощью массива?

Char* в число по ASCII кодам - C++
Здравствуйте! Подскажите, пожалуйста, есть ли какой то быстрый способ перевести char* в число по ASCII кодам Например у меня есть: ...

Записать число в ячейку char - C++
Здравствуйте. Столкнулся со странной проблемой. Нужно в ячейку str записать некоторое число int. Такой код работает: char...

Занести число в переменную, типа char - C++
char a; cin>>a; a=3; Тут при чтении с клавы мы считываем символ , т.е. если я введу 3, то а будет равно 3, а при присваивании а =...

Максимальное число элементов массива char - C++
Имеем char * DataBuffer = new char; При LMB_write = 2^31 уже вылетает. Как с этим бороться ? :)

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shaffle
1 / 1 / 0
Регистрация: 21.11.2010
Сообщений: 85
08.11.2011, 02:20  [ТС]     Rand число в char #16
под номером строки что должно идти?
а закрытие не должно проверяться?
просто большинство здесь наверно рускоязычных

вот задание 1.
ТЕОРЕТИЧЕСКИЕ ЗНАНИЯ : Синтаксис структури. Виділення пам'яті під елемент структури. Звертання до елемента структури. Використання структури як параметра функції. Масиви структур. Використання масиву структур як параметра функції.

Задача: Написати програму роботи з масивом з 10 об'єктів.
Потрібні окремі функції ініціалізації об'єктів і обчислень. У функції main у циклі виводити меню з пунктами (ініціалізувати об'єкт, надрукувати всі об'єкти, виконати підрахування ( залежно від варіанту), вийти із програми). Робота з меню повинна розташовуватися також в окремій функції

мой вариант:
Варіант 9:
Об'єкти – будинки у кварталі.
Потрібно обчислити середню й сумарну кількість поверхів, квартир, кімнат.


задание 2 (дополнение к этому):
Програма повинна містити пункти меню «Введення даних» і «Виведення даних». Відповідні функції повинні заповнювати файл даними, введеними з клавіатури або заповнювати структури даними з файлу, Структура береться з попередньої лабораторної роботи у відповідності до Вашого варіанту.




на счет с и с++ в перемешку, я даже не задумывался об этом. читаю такую литературу, и с этой книги нас учат на парах)
alkagolik
Заблокирован
08.11.2011, 02:34     Rand число в char #17
ну динамической памяти в задании нет. Зато четко говорится о функциональном программировании (с), а не ООП (с++). сейчас какой-то скелет нарисую, кожу сами натянете.
silent_1991
08.11.2011, 02:52
  #18

Не по теме:

Цитата Сообщение от alkagolik Посмотреть сообщение
о функциональном программировании (с)
О процедурном, Вы имели ввиду))

alkagolik
Заблокирован
08.11.2011, 05:48     Rand число в char #19
silent_1991, та да)) заболтался. компилировать с ключом с99.
код программы
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#include <stdlib.h>
#define size    10
 
typedef struct doma{
    int floor;
    int flat;
    int room;
};
 
void func_input(struct doma *tmp, FILE *fp, _Bool str){
    if (str)
        for (int i = 0; i < size; ++i)
            scanf("%d %d %d", &tmp[i].floor, &tmp[i].flat, &tmp[i].room);
    else
        for (int i = 0; i < size; ++i)
            fscanf(fp, "%d %d %d", &tmp[i].floor, &tmp[i].flat, &tmp[i].room);
 
}
 
void func_output(struct doma *tmp, FILE *fp, _Bool str){
    if (str)
        for (int i = 0; i < size; ++i)
            printf("%d %d %d\n", tmp[i].floor, tmp[i].flat, tmp[i].room);
    else
        for (int i = 0; i < size; ++i)
            fprintf(fp,"%d%d%d\n", tmp[i].floor, tmp[i].flat, tmp[i].room);
}
 
FILE *my_fopen(FILE *fp){
 
    FILE *tmp = fp;
    tmp = fopen("/home/deadman/documents/file.txt", "w+");
    if (!tmp){
        printf("error. line %d\n", 33);
        exit( -1 );
    }
    return tmp;
}
 
void my_fclose(FILE *fp){
    int ch = fclose(fp);
 
    if (ch){
        printf("error. line %d\n", 42);
        exit( -1 );
    }
}
 
int main ()
{
    struct doma array[size];
    FILE *fstr;
 
    fstr = my_fopen(fstr);
    puts ( "заполняем файл данными\n" );
    func_input(array, fstr, 1);
    func_output(array, fstr, 0);
    my_fclose(fstr);
    fstr = my_fopen(fstr);
    func_input(array, fstr, 0);
    my_fclose(fstr);
    fstr = my_fopen(fstr);
    func_output(array, fstr, 1);
    my_fclose(fstr);
 
    return 0;
}
shaffle
1 / 1 / 0
Регистрация: 21.11.2010
Сообщений: 85
08.11.2011, 18:45  [ТС]     Rand число в char #20
спасибо. у меня таки получилось сделать с инт в чар таким способом:
C++
1
2
3
4
int i; 
shar str
i=rand()%100;
itoa(i,str,100);
и меня пару вопросов по коду, как у новичка в Си.
зачем в структуре вы использовали typedef? обязательно ли оно в этом случае?
для чего вы используете булевские переменные в функциях?
и не понятно больше всего эта строка "FILE *my_fopen(FILE *fp)"
что она значит? это как функия?
alkagolik
Заблокирован
08.11.2011, 19:12     Rand число в char #21
Цитата Сообщение от shaffle Посмотреть сообщение
зачем в структуре вы использовали typedef?
можно и без него. А зачем? смотри ниже
Цитата Сообщение от shaffle Посмотреть сообщение
для чего вы используете булевские переменные в функциях?
булевы. Вы посмотрите код, там же видно что булев флаг выступает в роли ключа - считывать\записывать из стандартного i\o или из файла. Можно написать и по другому, но у вас не примут.
Цитата Сообщение от shaffle Посмотреть сообщение
и не понятно больше всего эта строка "FILE *my_fopen(FILE *fp)"
что она значит? это как функия?
да, это функция. Она имеет тип FILE *, и возвращает соответственно такой же. Дело в том, что где - то в *.h Си - шных заголовках как раз через typedef продублирован тип (какй оменно, искать не будем). Будь то unsigned int или unsigned long нам неважно. Мы свободно оперируем с дубликатом типа FILE.
пример (это не факт что именно так, просто для понимания)
C
1
typedef unsigned long FILE
теперь мы можем оперировать не громоздким выражением unsigned long, а его дубликатом FILE.
shaffle
1 / 1 / 0
Регистрация: 21.11.2010
Сообщений: 85
08.11.2011, 19:45  [ТС]     Rand число в char #22
понял, но надо еще подучить) у вас есть какая то литература, для изучения. а то я читаю Глушакова, и там не все есть..
alkagolik
Заблокирован
08.11.2011, 20:11     Rand число в char #23
Цитата Сообщение от shaffle Посмотреть сообщение
у вас есть какая то литература, для изучения
ищем Керниган & Ритчи. Язык программирования Си

Добавлено через 2 минуты
Цитата Сообщение от alkagolik Посмотреть сообщение
А зачем? смотри ниже
тут я неправильную смысловую нагрузку вложил. Имел ввиду вот что:
А зачем - смотри ниже.
shaffle
1 / 1 / 0
Регистрация: 21.11.2010
Сообщений: 85
08.11.2011, 21:49  [ТС]     Rand число в char #24
тяжелый код все таки. сугубо на Си. даже не знаю что мне препод скажет. решил со своим кодом довазиться, и наткнулся на ошибку не понятную....
Rand число в char

программа компелирует нормально, но в конце такое выдает...

вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// probi.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
#include <Windows.h>
#include <stdlib.h>
#define size    10
using namespace std;
 
struct doma
{
    int floor;
    int flat;
    int room;
};
 
void vvod(doma hata[], FILE *fil)
{char qw[100];
    for(int i=0; i<size; i++)
        {   cout<<"Дом №"<<i+1<<"\n";
            cout<<"Введите кол-во этажей\n";
            cin>>qw;
            strcat(qw,"\n");
            fputs(qw,fil);
            
            cout<<"Введите кол-во квартир\n";
            cin>>qw;
            strcat(qw,"\n");
            fputs(qw,fil);
 
            cout<<"Введите кол-во комнат\n";
            cin>>qw;
            strcat(qw,"\n");
            fputs(qw,fil);
 
            system("cls");
        }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE,"");
        doma hata[size]; 
        FILE *file;     
        file = fopen("Doma.txt","w+t");
        vvod(hata,file);
        fclose(file);
        
 
 
        file = fopen("Doma.txt","r+t");
        char str[100];
        for (int i=0; i<size; i++)
        {
            hata[i].floor=atoi(fgets(str,size,file));
            hata[i].flat=atoi(fgets(str,size,file));
            hata[i].room=atoi(fgets(str,size,file));
        }
 
        fclose(file);
        for (int i=0; i<size; i++)
            cout<<"№"<<i+1<<" колво этажей = "<<hata[i].floor<<"  кол-во квартир = "<<hata[i].flat<<"  кол-во комнат = "<<hata[i].room<<endl;
        
        delete (hata);
    system("pause");
    return 0;
}
alkagolik
Заблокирован
08.11.2011, 22:31     Rand число в char #25
ну что тут сказать... есть все готовое. если что-то непонятно, то самое время скопировать в буфер, вставить в поиск и почитать результат.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2011, 22:38     Rand число в char
Еще ссылки по теме:

Двух цифровое число в unsigned char - C++
Здравствуйте, есть задача:структура с long-гривны и unsigned char-копейки. Как мне в unsigned char засунуть двух цифровое число? Подобную...

Как превратить число из char в int ? - C++
Здрасте всем... Начал я учится и тут же непонятки, помогите плиз. Как мне на самом простом С++ превратить число из чар в инт ? ...

Как перевести шестнадцатеричное число в char? - C++
Как перевести шестнадцатеричное число в char?

Как записать 16ричное число в char - C++
Всем доброго времени суток! Столкнулся с такой проблемой: мне нужно создать строку из 16ричных байтов. Проблема состоит в следующим: как...

Число int перевести в hex и хранить в char - C++
Есть число в десятичном формате, допустим int a. Необходимо его в Hex формате положить в char. Рассматриваются только те случаи когда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
shaffle
1 / 1 / 0
Регистрация: 21.11.2010
Сообщений: 85
08.11.2011, 22:38  [ТС]     Rand число в char #26
спасибо всем за помощь, очень благодарен и многое узнал . тему можно закрывать.
Yandex
Объявления
08.11.2011, 22:38     Rand число в char
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru