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

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

Войти
Регистрация
Восстановить пароль
 
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 794
#1

Нет вывода и неправильная запись (запись) - C++

19.10.2012, 09:33. Просмотров 592. Ответов 11
Метки нет (Все метки)

Доброго времени суток!

Есть программка записывающая студентов.
При записи ФИО через пробел, происходит ошибка.
При выводе информации, происходит ошибка.

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
#include <stdio.h>
#include <conio.h>
#include <iostream>
 
using namespace std;
 
struct sport
{
 char fio[30];
 char vid[30];
 char fak[30];
 char spc[30];
 int lvl;
};
 
void ChangeNumber(sport*obj,int n)
{
    int number;
    cout<<"\n\n Введите номер для изменения: ";cin>>number;
    cout<<"Введите новые данные Ф.И.О.: ";cin>>obj[number].fio;
    cout<<"Введите новые данные о спорте: ";cin>>obj[number].vid;
    cout<<"Введите новуе данные о факультете: ";cin>>obj[number].fak;
    cout<<"Введите новуе данные о специальности: ";cin>>obj[number].spc;
    cout<<"Введите новые данные о возрасте: ";cin>>obj[number].lvl;
    cout<<endl;
}
 
int main ()
{
setlocale(0,"Rus");
int n,i;
printf("\n Введите кол-во студентов => ");
scanf("%d",&n);
sport* mas_struct=new sport[n];
 
for (i=0;i<n;i++)
{
    cout<<"Введите данные Ф.И.О.: ";cin>>mas_struct[i].fio;
    cout<<"Введите данные о спорте: ";cin>>mas_struct[i].vid;
    cout<<"Введите данные о факультете: ";cin>>mas_struct[i].fak;
    cout<<"Введите данные о специальности: ";cin>>mas_struct[i].spc;
    cout<<"Введите данные о возрасте: ";cin>>mas_struct[i].lvl;
}
 
printf("\n    Ф.И.О.   |   Спорт   |  Факультет  |  Специальность  |  Возраст  ");
for (i=0;i<n;i++)
printf("\n  %s  %s  %s  %s %d",mas_struct[i].fio,mas_struct[i].vid,mas_struct[i].fak,cin>>mas_struct[i].spc,mas_struct[i].lvl);
 
ChangeNumber(mas_struct,n);
 
getch();
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2012, 09:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нет вывода и неправильная запись (запись) (C++):

Неправильная запись в файл - C++
void Registration() { system(&quot;cls&quot;); cout &lt;&lt; &quot;Введите логин:&quot;; char Login; cin &gt;&gt; Login; cout &lt;&lt; &quot;Введите пароль:&quot;; ...

Неправильная запись в текстовый файл - C++
При записи в файл вместе с данными (логином и паролем), которые я ввожу, записываются непонятный мусор (лишние буквы МММ). Скажите...

Запись в файл, которого нет - C++
в чём дело, почему после этого кода пишет, будто не найдена директори файла вместо out вставлял и app но результат тот же, файл в...

Запрограммировать возможность вывода с видом правления, введенным пользователем, запись данных в фа - C++
Создать массив, элементами которого являются структуры – список стран. В записи должны содержаться название страны, столица, ФИО главы...

люди добрые! нужно программа инверсная запись чисел, запись из инверсной в обычную - C++
помогите сделать программа или датьсходник, можно на с++ или на паскале спасибо вам за раннее огромное!!!!!

[Файлы] Запись-чтение-запись. Почему не прокатывает? - C++
Сначала записываю в файл &quot;а&quot; запись &quot;makulatura&quot;, потом читаю ее в строку h. Все ок. Но потом когда открываю файл &quot;a&quot; опять для записи с...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
19.10.2012, 10:00 #2
Для ввода строки, содержащей пробелы, используйте функцию std::istream::getline().
C++
1
cin.getline( obj[number].fio, 30 );
1
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 794
20.10.2012, 21:31  [ТС] #3
Не сработало.
0
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
20.10.2012, 22:22 #4
вот немного переделанный с использованием string вместо 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
71
72
73
#include <iostream>
#include <string>
using namespace std;
 
struct sport
{
 string fio;
 string vid;
 string fak;
 string spc;
 int lvl;
};
 
void ChangeNumber(sport * obj, int n)
{
    int number;
    cout << endl;
    cout << "Ââåäèòå Г*îìåð äëÿ èçìåГ*ГҐГ*ГЁГї: ";
    cin >> number;
    cin.get();
    cout << "Ââåäèòå Г*îâûå Г¤Г*Г*Г*ûå Г”.Г€.ГЋ.:: ";
    getline(cin, obj[number].fio);
    cout<<"Ââåäèòå Г*îâûå Г¤Г*Г*Г*ûå Г® ñïîðòå: ";
    getline(cin, obj[number].vid);
    cout<<"Ââåäèòå Г*îâûå Г¤Г*Г*Г*ûå Г® ГґГ*êóëüòåòå: ";
    getline(cin, obj[number].fak);
    cout<<"Ââåäèòå Г*îâûå Г¤Г*Г*Г*ûå Г® ñïåöèГ*ëüГ*îñòè: ";
    getline(cin, obj[number].spc);
    cout<<"Ââåäèòå Г*îâûå Г¤Г*Г*Г*ûå Г® âîçðГ*Г±ГІГҐ: ";
    cin >> obj[number].lvl;
    cout << endl;
}
 
int main ()
{
    system("chcp 1251");
 
    int n,i;
    cout << "Ââåäèòå êîë-ГўГ® ñòóäåГ*òîâ => ";
    cin >> n;
    cin.get();
 
    sport* mas_struct=new sport[n];
 
    for (i=0; i < n; i++)
    {
        cout << "Ââåäèòå Г¤Г*Г*Г*ûå Г”.Г€.ГЋ.: ";
        getline(cin, mas_struct[i].fio);
        cout << "Ââåäèòå Г¤Г*Г*Г*ûå Г® ñïîðòå: ";
        getline(cin, mas_struct[i].vid);
        cout << "Ââåäèòå Г¤Г*Г*Г*ûå Г® ГґГ*êóëüòåòå: ";
        getline(cin, mas_struct[i].fak);
        cout << "Ââåäèòå Г¤Г*Г*Г*ûå Г® ñïåöèГ*ëüГ*îñòè: ";
        getline(cin, mas_struct[i].spc);
        cout << "Ââåäèòå Г¤Г*Г*Г*ûå Г® âîçðГ*Г±ГІГҐ: ";
        cin >> mas_struct[i].lvl;
    }
 
    cout << endl;
 
    for (i = 0; i < n; i++)
    {
        cout << "Г”.Г€.ГЋ.: " << mas_struct[i].fio << endl;
        cout << "Ñïîðò: " << mas_struct[i].vid << endl;
        cout << "Г”Г*êóëüòåò: " << mas_struct[i].fak << endl;
        cout << "ÑïåöèГ*ëüГ*îñòü: " << mas_struct[i].spc << endl;
        cout << "ÂîçðГ*Г±ГІ: " << mas_struct[i].lvl;
    }
    ChangeNumber(mas_struct,n);
 
    system("pause");
    return 0;
}
1
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 794
21.10.2012, 20:03  [ТС] #5
StanislavUA, вариант хороший но, если ввести к примеру 2 студента и задать параметры для первого, то у второго пропускается данные о ФИО... как исправить?
0
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
21.10.2012, 20:09 #6
Цитата Сообщение от StanislavUA Посмотреть сообщение
int n,i;
* * cout << "Введите кол-во студентов => ";
* * cin >> n;
* * cin.get();
уберите здесь cin.get() и вставьте его после for
C++
1
2
3
4
 for (i=0; i < n; i++)
    {
          cin.get()
          *************
1
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 794
21.10.2012, 20:35  [ТС] #7
Осталась последняя проблема: вместо русских букв выводятся непонятные символы.
0
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
21.10.2012, 20:38 #8
кликаете пкм на консоли, выбираете пункт "Умолчания" и ставите шрифт Consolas, после этого если в программе есть строчка system("chcp 1251") программа отлично работает с русским языком(ввод/вывод)
0
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 794
21.10.2012, 20:43  [ТС] #9
Работаю в Dev C++ не могу найти такого.
0
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
21.10.2012, 20:49 #10
для этого не обязательно это делать в компиляторе
пуск->cmd->enter
1
Миниатюры
Нет вывода и неправильная запись (запись)  
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 794
21.10.2012, 20:57  [ТС] #11
Во время изменения параметров программа останавливается и начинается поиск решения.
0
SuLLeN
23 / 23 / 4
Регистрация: 27.12.2011
Сообщений: 794
22.10.2012, 21:04  [ТС] #12
Поможет кто?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2012, 21:04
Привет! Вот еще темы с ответами:

Дана строка. Определить, представляет ли она собой запись целого числа или запись дробного числа - C++
Дана строка.Необходимо определить ,представляет ли она собой запись целого числа,записать дробного числа.Считайте ,что дробная часть...

. Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа - C++
срочно помогите пожалуйста

Определить, представляет ли строка собой запись целого числа, запись дробного числа - C++
Выполните задания с использованием библиотечного класса string. Дана строка. Необходимо определить, представляет ли она собой запись...

Нет вывода в консоль - C++
Доброго времени суток! В середине дня столкнулась со следующей проблемой. При сборке программы в Visual Studio 2008 все прекрасно и без...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.10.2012, 21:04
Ответ Создать тему
Опции темы

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