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

Для каждого прочитанного числа напечатать строку, содержащую соответствующее число символов "*" - C++

Восстановить пароль Регистрация
 
mAb1she
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 2
28.10.2016, 13:01     Для каждого прочитанного числа напечатать строку, содержащую соответствующее число символов "*" #1
Целое задание выглядит так:
Написать программу, которая читает из файла несколько целых чисел (каждое из промежутка от 1 до 80). Для каждого прочитанного числа программа должна напечатать строку, содержащую соответствующее число символов *.
Например, если программа прочла число 5, то должно быть напечатано *****.

Я реализовал чтение чисел из файлов в переменную string

Вопрос: нужна реализация записи звездочек по этим числам, вся бяда с типами, может, кто знает, как попроще это все реализовать.

Уже написанный код:
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
#include "stdafx.h"
#include <iostream> 
#include <io.h> 
#include <fstream>
#include <string> 
#include <stdlib.h> 
 
 
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"RUS");
                            
                            string line;
                            string text;
        string result;
 
    ifstream myfile ("example.txt");
    
 
    
                    if (myfile.is_open())
                  {
                      while (! myfile.eof() )
                      { 
                        getline (myfile,line);
                      }
                        
        
                  }
    else cout << ("Unable to open file")<< endl; 
 
 
 
    system("pause");
    return 0;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2016, 13:01     Для каждого прочитанного числа напечатать строку, содержащую соответствующее число символов "*"
Посмотрите здесь:

Напечатать для каждого числа от M до N его минимальный делитель C++
C++ Напечатать все различные слова, указав для каждого из них число его вхождений в последовательность
Преобразовать цифру, введённую с консоли в строку, содержащую числительное, соответствующее этой цифре. Результат вывести на консоль C++
C++ Даны натуральное число n, символы s1,.,sn. Получить последовательность символов, содержащую только последние вхождения каждого символа
Вывод числа вхождений каждого из символов первой строки во вторую строку C++
C++ Напечатать строку текста, содержащую минимальное количество знаков препинания
Получить из данных строк S1 и S2 новую строку, содержащую первые N1 символов S1 и последние N2 символов S2 C++
C++ Получить последовательность символов, содержащую только последние вхождения каждого символа

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1875 / 987 / 61
Регистрация: 29.03.2010
Сообщений: 2,983
28.10.2016, 15:01     Для каждого прочитанного числа напечатать строку, содержащую соответствующее число символов "*" #2
как хранятся числа у вас в файле - хз, раз написали чтение из файла, то осталось сделать разбиение на числа, т.е. берете вашу строку и делаете что-то по типу:

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
void split(const std::string &s, char delim, std::vector<std::string> &elems) {
    std::stringstream ss;
    ss.str(s);
    std::string item;
    while (std::getline(ss, item, delim)) {
        elems.push_back(item);
    }
}
 
std::vector<std::string> split(const std::string &s, char delim) {
    std::vector<std::string> elems;
    split(s, delim, elems);
    return elems;
}
 
void main() {
  //...
  string stringwithdigits;
  //... записываете свои числа сюда, дальше нужно сделать парсер
  const char separatorCh = ','; //сепаратор который вы будете использовать в своем файле
  std::vector<std::string> digits = split(stringwithdigits, separatorCh); //разбиваем целую строку на подстроки, на основе сепаратора
  for(string digitString : digits) { //бежим по всем разобранным числам
       const int digit = std::stoi(digit); //преобразовываем строку к инту
       for (int i = 0; i < digit; ++i)
       {
             cout << "*"; //выводим нужное кол-во звездочек
       }
       cout << "\n";
  }
}
Добавлено через 12 секунд
в общем как-то так...
Yandex
Объявления
28.10.2016, 15:01     Для каждого прочитанного числа напечатать строку, содержащую соответствующее число символов "*"
Ответ Создать тему

Метки
c++
Опции темы

Текущее время: 21:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru