Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 1
Регистрация: 02.04.2015
Сообщений: 46
1

Происходит выход из функции при попытке считывания текста в переменную

03.03.2016, 11:18. Показов 650. Ответов 7
Метки нет (Все метки)

Почему при попытке записать текст на английском языке в str[i].maker выходит из функции? (и как правильно это сделать)
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
#include <iostream>
 
using namespace std;
const int size = 10;
 
int revalue();
 
struct box
{
    char maker[40];
    float height;
    float width;
    float length;
    float volume;
};
int enter_data(box *, int);
 
int main()
{ 
    box ar[size];
    int new_size = enter_data(ar, size);
}
int enter_data(box str[], int a )
{
    for(int i=0; i<a; i++)
    {
        cout << "Write words " << i << " :";
        while(!(cin >> str[i].maker))
        return i;
        cout << "\nWrite height " << i << " :";
        while(!(cin >> str[i].height))
        return i;
        cout << "\nWrite length " << i << " :";
        while(!(cin >> str[i].length))
        return i;
        cout << "\nWrite volume " << i << " :";
        while(!(cin >> str[i].volume))
        return i;
    }
    return a;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2016, 11:18
Ответы с готовыми решениями:

При попытке считать информацию из типизированного файла, происходит попытка считывания с клавиатуры и ошибка
Написала код который должен решать следующую задачу:дан символьный файл, группы символов разделены...

Не происходит считывания таблицы из БД при выгрузки приложения в локальную версию IIS
Суть проблемы: Создал проект-сервис, который выполняет подключение к БД MS SQL и считывание оттуда...

Почему происходит выход за границы массива в функции Analyze()?
#include &quot;Analyzer.h&quot; #include &quot;HashTable.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; using...

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

7
BrainOverflow
125 / 129 / 64
Регистрация: 31.03.2013
Сообщений: 556
03.03.2016, 11:25 2
Владимир90, в чем смысл программы? Что она сделать должна?
0
1 / 1 / 1
Регистрация: 02.04.2015
Сообщений: 46
03.03.2016, 11:49  [ТС] 3
Я пытаюсь написать функцию, принимающую структуру по значению, и записывающую туда исходные данные, на этом пока все... Строкой
C++
1
while(!(cin >> str[i].maker))
, пытаюсь обработать неправильный ввод значений.

Добавлено через 5 минут
Ладно объясню более подробно, при попытке записать в
C++
1
while(!(cin >> str[i].maker))
фразу типа "Don't be afraid!" выполнение программы прекращается...
0
BrainOverflow
125 / 129 / 64
Регистрация: 31.03.2013
Сообщений: 556
03.03.2016, 11:50 4
Владимир90, так вместо return i поставьте return 1.
0
nd2
3422 / 2802 / 1252
Регистрация: 29.01.2016
Сообщений: 9,426
03.03.2016, 11:55 5
Цитата Сообщение от Владимир90 Посмотреть сообщение
while(!(cin >> str[i].maker))
while() тут зачем?
0
1 / 1 / 1
Регистрация: 02.04.2015
Сообщений: 46
03.03.2016, 12:18  [ТС] 6
Не принципиально, можно поставить If, главное, чтобы при вводе неправильных значений функция enter_data прекращала выполнение работы, и возвращала i - ячейку массива, на котором прекратился ввод данных ( int new_size), для дальнейшей его передачи в другие функции и работы с ними.
0
nd2
3422 / 2802 / 1252
Регистрация: 29.01.2016
Сообщений: 9,426
03.03.2016, 12:27 7
Цитата Сообщение от Владимир90 Посмотреть сообщение
можно поставить If
Поставь. Ошибка остаётся?

Добавлено через 5 минут
И где ввод width?
1
1 / 1 / 1
Регистрация: 02.04.2015
Сообщений: 46
03.03.2016, 13:06  [ТС] 8
Поставил, добавил ввод Width, не знаю как, но ошибка исчезла...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2016, 13:06

Происходит выход за границы при нахождении палиндромов
почему выходит за границы ?(( ищу слова палидромы private void button2_Click(object...

При попытке сделать checkout автоматически не происходит getlatestversion
При попытке сделать checkout автоматически не происходит getlatestversion... Можно ли какнибудь...

Происходит выход за диапазон при обращении к ячейкам DGV
для работы программы необходимо заполнить строку справа от 0 ( та, которая с индексами (0,j) и...

При попытке вызова метода ничего не происходит. Код не отрабатывает.
Здравствуйте Решил разобраться с классами На нескольких сайтах нашёл пример кода с классами Но...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru