C/C++

Не работает код с++

Решал задачку. Задача звучит так: Разработать программу, которая выводит на экран линию из символов. Число символов, какой использовать символ, и какая будет линия - вертикальная, или горизонтальная - указывает пользователь.
Проблема в том , что когда выбираю вертикально то все работает и выводит , но когда пытаюсь горизантально код ничего не выводит.
#include<iostream>
using namespace std;

int main()
{
setlocale(LC_ALL, "Rus");
char smvl;
int kol, tipok, nach;
nach = 0;
cout << "Введите кол-во символов" << endl;
cin >> kol;
cout << "Введите символ , который будет использоваться" << endl;
cin >> smvl;
cout << "Выберите 1 - вериткальный, 2 - горизантальный" << endl;
cin >> tipok;
switch (tipok)
{
case 1:
while (nach < kol)
{
cout << smvl << endl;
nach++;
}
break;
case 2:
while (nach < kol)
{
cout << smvl;
nach++;
}
break;
default:(cout << "Я не знаю такой тип!" << endl;)
break;
}
}
ДМ
Дим М
85
 #include  
#include
#include

using namespace std;

string line(const int count, const char ch, const int choice) {
if (choice < 1 || choice > 2) return "Неизвестный тип линии!";
if (2 == choice) return string(count, ch);
char token[3]{ ch, '\n', 0 };
string result;
for (auto i = 0; i < count; ++i) result += token;
result.pop_back();
return result;
}

int main() {
system("chcp 1251 > nul");
cout > count;
cout > ch;
cout > choice;
auto res = line(count, ch, choice);
puts(res.c_str());
system("pause > nul");
}
Iurie Vicol
Iurie Vicol
59 646
Лучший ответ
во-первых:
правильно будет setlocale(LC_ALL, "Russian");

во-вторых: setlocale применяется только для вывода текста широкосимвольного, то есть типа wchar_t, а не char
J1
Jamik_ 12
7 402
Витек Бусев А чем отличается Rus от Russian?
#include<iostream>
using namespace std;

int main()
{
setlocale(LC_ALL, "Rus");
char smvl;
int kol, tipok, nach;
nach = 0;
cout << "Ââåäèòå êîë-âî ñèìâîëîâ" << endl;
cin >> kol;
cout << "Ââåäèòå ñèìâîë , êîòîðûé áóäåò èñïîëüçîâàòüñÿ" << endl;
cin >> smvl;
cout << "Âûáåðèòå 1 - âåðèòêàëüíûé, 2 - ãîðèçàíòàëüíûé" << endl;
cin >> tipok;
switch (tipok)
{
case 1:
while (nach < kol)
{
cout << smvl << endl;
nach++;
}
break;
case 2:
while (nach < kol)
{
cout << smvl;
nach++;
}
break;
default:(cout << "ß íå çíàþ òàêîé òèï!" << endl);
}
}

у меня вышло кажись
Виталий Алексеев жаль текст в крокозябрах
Виталий Алексеев using namespace std;

int main()
{
setlocale(LC_ALL, "Rus");
char smvl;
int kol, tipok, nach;
nach = 0;
cout << "Введите кол-во символов" << endl;
cin >> kol;
cout << "Введите символ , который будет использоваться" << endl;
cin >> smvl;
cout << "Выберите 1 - вериткальный, 2 - горизантальный" << endl;
cin >> tipok;
switch (tipok)
{
case 1:
while (nach < kol)
{
cout << smvl << endl;
nach++;
}
break;
case 2:
while (nach < kol)
{
cout << smvl;
nach++;
}
break;
default:(cout << "Я не знаю такой тип!" << endl);
}
}