Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
1

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

19.10.2012, 09:33. Показов 853. Ответов 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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2012, 09:33
Ответы с готовыми решениями:

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

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

Неправильная запись const char* в std::string
Привет, делаю Web-Парсер на плюсах и Python (на Питоне только Web пока что). В данный момент...

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

11
1174 / 887 / 94
Регистрация: 03.08.2011
Сообщений: 2,457
19.10.2012, 10:00 2
Для ввода строки, содержащей пробелы, используйте функцию std::istream::getline().
C++
1
cin.getline( obj[number].fio, 30 );
1
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
20.10.2012, 21:31  [ТС] 3
Не сработало.
0
44 / 44 / 14
Регистрация: 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
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
21.10.2012, 20:03  [ТС] 5
StanislavUA, вариант хороший но, если ввести к примеру 2 студента и задать параметры для первого, то у второго пропускается данные о ФИО... как исправить?
0
44 / 44 / 14
Регистрация: 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
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
21.10.2012, 20:35  [ТС] 7
Осталась последняя проблема: вместо русских букв выводятся непонятные символы.
0
44 / 44 / 14
Регистрация: 27.04.2011
Сообщений: 163
21.10.2012, 20:38 8
кликаете пкм на консоли, выбираете пункт "Умолчания" и ставите шрифт Consolas, после этого если в программе есть строчка system("chcp 1251") программа отлично работает с русским языком(ввод/вывод)
0
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
21.10.2012, 20:43  [ТС] 9
Работаю в Dev C++ не могу найти такого.
0
44 / 44 / 14
Регистрация: 27.04.2011
Сообщений: 163
21.10.2012, 20:49 10
для этого не обязательно это делать в компиляторе
пуск->cmd->enter
1
Миниатюры
Нет вывода и неправильная запись (запись)  
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
21.10.2012, 20:57  [ТС] 11
Во время изменения параметров программа останавливается и начинается поиск решения.
0
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
22.10.2012, 21:04  [ТС] 12
Поможет кто?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2012, 21:04

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

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

Дана строка, изображающая двоичную запись целого положительного числа. Вывести строку, изображающую десятичную запись эт
Не врубаюсь вообще. Прошу использовать только библиотекu &lt;cstring&gt; ну и стандартные тоже можно...

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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