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

Лишний раз выводит сообщение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помгите найти - сумму отрицательных элементов массива http://www.cyberforum.ru/cpp-beginners/thread1022200.html
#include <iostream> #include <stdlib.h> #include <time.h> #include <cmath> using namespace std; void float1(double *mass, int const n); void float2(double *mass, int const n);
C++ Где ошибка? #include<conio.h> #include<iostream.h> #include<fstream.h> #include<stdio.h> #define i 10 int x; char group; http://www.cyberforum.ru/cpp-beginners/thread1022183.html
C++ Строки
#include <stdio.h> //header file for input-output #include <conio.h> //header file for console #include <string.h> //header file for string processing #include <iostream> using namespace std; void main () { int n; int count=1;
C++ Файл, сортировка и командная строка
Допустим есть условие: строки данного файла отсортировать по алфавиту, название файла задается в командной строке т.е. мы уже имеем созданные файлы (и с некими текстами внутри), потом вводим название файла и сортируем? если не так - поправьте, пожалуйста... расскажите по подробнее как ввести с cmd название файла, очень буду благодарен
C++ Задачка на строки.Дана строка, состоящая из слов http://www.cyberforum.ru/cpp-beginners/thread1022166.html
Дана строка, состоящая из слов (словом считать группу символов, начинающуюся и заканчивающуюся пробелом, или знаками препинания). Вывести самое длинное слово.
C++ Применение цикла do-while Здравствуйте. Хочу зациклить выполнение функции до тех пор, пока не будет выполнено условие, но не получается. Программа успешно компилируется, но результата нет. Подскажите, пожалуйста, в чем моя ошибка. В теле функции много расчетов, поэтому их приводить нет смысла. Думаю, что проблема в неправильном задании счетчика переменной с в цикле do-while. Принцип построения программы следующий: ... подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
28.11.2013, 20:20     Лишний раз выводит сообщение
genock94, насколько я знаю, всё дело в переводе каретки, который остался в буфере ввода после scanf. Самое простое, как это можно увидет:
C++
1
2
3
4
char someChar;
int x;
scanf("%d", &x);
scanf("%c", &someChar);
После ввода числа и нажатия enter - у вас будет считано и число и \n - автоматом.
Тут произошло то же - второе сообщение вывелось потому, что программа посчитала, что вы ввели два символа - один, допустим, Z, а второй '\n'

Исправить можно несколькими способами. Раньше я делал так:
C++
1
2
3
char crap[10];
scanf("%d", &x);
gets(crap);//чистим весь мусор
Но теперь делаю так
C++
1
2
scanf("%d", &x);
scanf("%*c"); //очищает буфер и никуда (то что считал) не записывает
 
Текущее время: 13:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru