Вот код . После ввода данных с клавиатуры все выводит правильно кроме имени вечно какая то ерунда, не пойму почему? Подскажите где ошибся !
#include<iostream>
#include<conio.h>
#include<cstring>
using std::cout;
using std::endl;
using std::cin;
int main()
{
setlocale(LC_ALL, "Russian");
char str[20] ;
int age;
int phone;
cout << "\n \t\tВведите ваши персональные данные";
cout << "\n \n Введите свое имя" << endl;
cin.getline(str, 20);
cout << "\n Введите свой телефон" << endl;
cin >> phone;
cout << "\n Введите свой возраст" << endl;
cin >> age ;
system("cls");
cout << "\nИмя - " << str << endl;
cout << "Телефон - " << phone << endl;
cout << "Возраст - " << age << endl;
Другие языки программирования и технологии
Где ошибка в коде С++ ?
#include <iostream>
#include <string>
using namespace std;
enum point { IN_PERSON, IN_NAME, IN_PHONE, INP_AGE, OUT_NAME, OUT_PHONE, OUT_AGE };
void ui(enum point);
int main() {
ui(IN_PERSON);
ui(IN_NAME); string name; getline(cin, name);
ui(IN_PHONE); unsigned long phone; cin >> phone;
ui(INP_AGE); unsigned short age; cin >> age;
system("cls");
ui(OUT_NAME); cout << name << endl;
ui(OUT_PHONE); cout << phone << endl;
ui(OUT_AGE); cout << age << endl;
cin.sync();
cin.get();
}
void ui(enum point pt) {
setlocale(LC_CTYPE, "Russian_Russia.1251");
switch (pt) {
case IN_PERSON: cout << "\n\t\tВведите ваши персональные данные\n"; break;
case IN_NAME: cout << "Введите свое имя: "; break;
case IN_PHONE: cout << "Введите номер телефона: "; break;
case INP_AGE: cout << "Введите возраст: "; break;
case OUT_NAME: cout << "Имя - "; break;
case OUT_PHONE: cout << "Телефон - "; break;
case OUT_AGE: cout << "Возраст - "; break;
default: exit(1); break;
}
setlocale(LC_CTYPE, "English_United States.866");
}
#include <iostream>
#include <string>
using namespace std;
enum point { IN_PERSON, IN_NAME, IN_PHONE, INP_AGE, OUT_NAME, OUT_PHONE, OUT_AGE};
void ui(enum point);
int main() {
ui(IN_PERSON);
ui(IN_NAME); string name; getline(cin, name);
ui(IN_PHONE); unsigned long phone; cin >> phone;
ui(INP_AGE); unsigned short age; cin >> age;
system("cls");
ui(OUT_NAME); cout << name << endl;
ui(OUT_PHONE); cout << phone << endl;
ui(OUT_AGE); cout << age << endl;
cin.sync();
cin.get();
}
void ui(enum point pt) {
locale::global(locale(".1251"));
switch (pt) {
case IN_PERSON: cout << "\n\t\tВведите ваши персональные данные\n"; break;
case IN_NAME: cout << "Введите свое имя: "; break;
case IN_PHONE: cout << "Введите номер телефона: "; break;
case INP_AGE: cout << "Введите возраст: "; break;
case OUT_NAME: cout << "Имя - "; break;
case OUT_PHONE: cout << "Телефон - "; break;
case OUT_AGE: cout << "Возраст - "; break;
default: exit(1); break;
}
locale::global(locale(".866"));
}
#include <iostream>
#include <string>
using namespace std;
int main() {
system("chcp 1251 > nul");
cout << "\n\t\tВведите ваши персональные данные\n";
cout << "Введите свое имя: ";
string name;
getline(cin, name);
cout << "Введите номер телефона: ";
unsigned long phone;
cin >> phone;
cout << "Введите возраст: ";
unsigned short age;
cin >> age;
system("cls");
cout << "Имя - " << name << endl << "Телефон - " << phone << endl << "Возраст - " << age << endl;
cin.sync();
cin.get();
}
#include <iostream>
#include <string>
using namespace std;
void rus();
int main() {
rus();
wcout << L"\n\t\tВведите ваши персональные данные\n";
wcout << L"Введите свое имя: ";
wstring name;
getline(wcin, name);
wcout << L"Введите номер телефона: ";
unsigned long phone;
cin >> phone;
wcout << L"Введите возраст: ";
unsigned short age;
cin >> age;
system("cls");
wcout << L"Имя - " << name << endl << L"Телефон - ";
cout << phone << endl;
wcout << L"Возраст - ";
cout << age << endl;
wcin.sync();
cin.get();
}
void rus() {
wcout.imbue(locale(".866"));
wcin.imbue(locale(".866"));
}
#include <string>
using namespace std;
enum point { IN_PERSON, IN_NAME, IN_PHONE, INP_AGE, OUT_NAME, OUT_PHONE, OUT_AGE };
void ui(enum point);
int main() {
ui(IN_PERSON);
ui(IN_NAME); string name; getline(cin, name);
ui(IN_PHONE); unsigned long phone; cin >> phone;
ui(INP_AGE); unsigned short age; cin >> age;
system("cls");
ui(OUT_NAME); cout << name << endl;
ui(OUT_PHONE); cout << phone << endl;
ui(OUT_AGE); cout << age << endl;
cin.sync();
cin.get();
}
void ui(enum point pt) {
setlocale(LC_CTYPE, "Russian_Russia.1251");
switch (pt) {
case IN_PERSON: cout << "\n\t\tВведите ваши персональные данные\n"; break;
case IN_NAME: cout << "Введите свое имя: "; break;
case IN_PHONE: cout << "Введите номер телефона: "; break;
case INP_AGE: cout << "Введите возраст: "; break;
case OUT_NAME: cout << "Имя - "; break;
case OUT_PHONE: cout << "Телефон - "; break;
case OUT_AGE: cout << "Возраст - "; break;
default: exit(1); break;
}
setlocale(LC_CTYPE, "English_United States.866");
}
#include <iostream>
#include <string>
using namespace std;
enum point { IN_PERSON, IN_NAME, IN_PHONE, INP_AGE, OUT_NAME, OUT_PHONE, OUT_AGE};
void ui(enum point);
int main() {
ui(IN_PERSON);
ui(IN_NAME); string name; getline(cin, name);
ui(IN_PHONE); unsigned long phone; cin >> phone;
ui(INP_AGE); unsigned short age; cin >> age;
system("cls");
ui(OUT_NAME); cout << name << endl;
ui(OUT_PHONE); cout << phone << endl;
ui(OUT_AGE); cout << age << endl;
cin.sync();
cin.get();
}
void ui(enum point pt) {
locale::global(locale(".1251"));
switch (pt) {
case IN_PERSON: cout << "\n\t\tВведите ваши персональные данные\n"; break;
case IN_NAME: cout << "Введите свое имя: "; break;
case IN_PHONE: cout << "Введите номер телефона: "; break;
case INP_AGE: cout << "Введите возраст: "; break;
case OUT_NAME: cout << "Имя - "; break;
case OUT_PHONE: cout << "Телефон - "; break;
case OUT_AGE: cout << "Возраст - "; break;
default: exit(1); break;
}
locale::global(locale(".866"));
}
#include <iostream>
#include <string>
using namespace std;
int main() {
system("chcp 1251 > nul");
cout << "\n\t\tВведите ваши персональные данные\n";
cout << "Введите свое имя: ";
string name;
getline(cin, name);
cout << "Введите номер телефона: ";
unsigned long phone;
cin >> phone;
cout << "Введите возраст: ";
unsigned short age;
cin >> age;
system("cls");
cout << "Имя - " << name << endl << "Телефон - " << phone << endl << "Возраст - " << age << endl;
cin.sync();
cin.get();
}
#include <iostream>
#include <string>
using namespace std;
void rus();
int main() {
rus();
wcout << L"\n\t\tВведите ваши персональные данные\n";
wcout << L"Введите свое имя: ";
wstring name;
getline(wcin, name);
wcout << L"Введите номер телефона: ";
unsigned long phone;
cin >> phone;
wcout << L"Введите возраст: ";
unsigned short age;
cin >> age;
system("cls");
wcout << L"Имя - " << name << endl << L"Телефон - ";
cout << phone << endl;
wcout << L"Возраст - ";
cout << age << endl;
wcin.sync();
cin.get();
}
void rus() {
wcout.imbue(locale(".866"));
wcin.imbue(locale(".866"));
}
Код верен, а проблема в консоли. Консольное окно создается не только вашей программой, но еще и cmd.exe. которая входит в состав винды. Вот в ней и дело.
Помочь вам, не зная, в какой среде вы пишете, нельзя.
Если в Dev C++, выбросьте эту глючную дрянь и поставьте Visual Studio, лучше 2008. Там глюки тоже есть, но работать можно. в том числе с графическим интерфейсом, а не с унылой консолью.
Помочь вам, не зная, в какой среде вы пишете, нельзя.
Если в Dev C++, выбросьте эту глючную дрянь и поставьте Visual Studio, лучше 2008. Там глюки тоже есть, но работать можно. в том числе с графическим интерфейсом, а не с унылой консолью.
локаль вам не поможет, тут надо конвертировать строки
Кодировки - слабое место консоли Windows (там ввод на cp866, а вывод из твоего кода на cp1251). Не хочешь секса - вводи латиницей и не морочь себе голову.
... ну братишка - тут полная ж.. . -дупло, кароче.
Перед тем как вывести символьную переменную надо поставить локаль на С, а потом поменять на нормальную
На сколько помню отвечали уже тут, исправить ошибку можно с помощью - WindowsFix
Локаль на "С" может-поможет ;)
А вообще, есть куча других работающих функций для перекодировки :)
А вообще, есть куча других работающих функций для перекодировки :)
Самое простое решение:
Похожие вопросы
- Помогите, пожалуйста, исправить ошибку в коде С++!!
- помогите найти ошибку в коде на Си
- Помогите найти ошибку в коде с++. Скорее всего ошибка в сравнении строк.
- Помогите исправить ошибку в коде программы на паскале.
- Помогите найти ошибку в коде
- Помогите найти ошибку в коде. делфи
- Вопрос по С++ ,подскажите ошибку в коде.
- Помогите найти ошибки в коде (паскаль)
- [Язык С++] Ошибка в коде не пойму что такое...
- где ошибка в коде Visual Basic?