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

Ошибка после первого цикла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Записать в вектор среднее значение элементов каждой строки матрицы http://www.cyberforum.ru/cpp-beginners/thread1685143.html
Дана матрица m x n. Найти и записать в вектор Y среднее значение элементов каждой строки
C++ Проверить, образуют ли элементы массива геометрическую прогрессию Помогите пожалуйста выполнить задание, С++ только начинаю осваивать, незнаю с чего начать. Задание: Дан целочисленный массив размера N. Проверить, образуют ли его элементы геометрическую прогрессию. Заранее спасибо! http://www.cyberforum.ru/cpp-beginners/thread1685135.html
Определить, является ли заданный текст двоичной записью числа, кратного 6 C++
Вот моя программа,она вроде работает верно,но есть цисла ,для которых она считает не верно или вообще не считает,помогите пожалуйста,спасибо за внимание #include<iostream> #include<string.h> #include<stdlib.h> #include<math.h> using namespace std; char s; int a; int l,i,z,n,c,d,j,m; bool f;
С++ задача, надо зациклить, скажите что не так, ошибку выдает в switch, про точку с запятой знаю их вроде не н C++
{ do { char c; system("echo Есть три задачи"); system("echo 1-Следование"); system("echo 2-Ветвление"); system("echo 3-Циклы"); system("echo 4-Выход"); system("echo Введите номер задачи");
C++ Подсчитать количество предложений во введенном тексте http://www.cyberforum.ru/cpp-beginners/thread1685088.html
Здравствуйте. Задача стоит такая: "Подсчитать количество предложений во введенном тексте". Набросал код, находит ошибку еще на строке fopen. На всякий случай скину папку с программой потому, что не уверен что поместил файл в нужную директорию. #include <iostream> #include <locale.h> /* Для русского языка */ #include <cstdlib> using namespace std; int main() {
C++ После ввода первой строки программа дает ошибку и закрывается #include<iostream> #include<cstring> #include"stdio.h" using namespace std; struct strk{ char *a,*b; int c,d; }el; int main(){ struct strk el; подробнее

Показать сообщение отдельно
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,340
15.03.2016, 00:06     Ошибка после первого цикла
Ismet, gets, как и все стандартные функции считывания строки, читают поток ввода до появления символа перевода строки '\n'.
А такие конструкции "cin>>f[i].c" работают по другому, они считывают то что им положено (число, слово и т.п.), а что находится за ними не трогают. Т.е. если после ввода числа ты нажал Enter, т.е. вставил символ перевода строки '\n', то этот символ в потоке ввода после считывания числа останется. И когда твой цикл пойдет на вторую итерацию и выполнит gets(f[i].a);, то он сразу прочитает '\n' не дожидаясь ввода с твоей стороны.

Чтобы этого избежать, нужно в конце цикла выкинуть оставшийся символ '\n', для этого можно например выполнить:
C++
1
cin.ignore(numeric_limits<int>::max(), '\n');
 
Текущее время: 20:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru