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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
NillK
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 11
#1

Почему цикл с условием EOF читает последний символ 2 раза? - C++

26.09.2013, 15:48. Просмотров 1252. Ответов 3
Метки нет (Все метки)

Данная программа читает двоичную строку и выводит длину самой продолжительной цепочки нулей.
Почему мой цикл читает 2 раза последнее число?
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
#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;
int main (){
char a;
int i1,i2;
i1 = 0;
i2 = 0;
ofstream out("output.txt");
ifstream in ("input.txt");
while(!in.eof())
{
    in>>a;
    if(a=='0')
    i1++;
    else i1 = 0;
    if(i1>i2)
    i2=i1;
 
}
out<<i2;
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 15:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему цикл с условием EOF читает последний символ 2 раза? (C++):

Почему при чтении файла последний символ выводится 2 раза? - C++
если структура файла: 1\nEOF. То почему не выполняется условие if(Ch != '\n') { cout.put(Ch); } и программа выводит в...

Возможно ли записать в последний символ EOF? - C++
Доброе время суток. В текстовом файле заменить все последовательности идущих подряд пробелов одним пробелом. Можно ли записать в...

Почему если в консоли ввести вместо числа любой символ, программа впадает в бесконечный цикл? - C++
Всем привет! Недавно начал изучать С++ и столкнулся с проблемой при создании калькулятора. Если в консоли ввести вместо числа любой...

Бесконечный цикл и EOF в VS 2013 - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;string&gt; #include &lt;cstdlib&gt; #include...

Почему не срабатывает EOF - C++
У меня стоит Visual Studio 2010 написал простенькую программу #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; int main() { int...

Цикл с параметром и цикл с условием - C++
1. Составить программу вычисления суммы первых 10 непарных чисел 2. Дано числовой ряд и некоторое число &quot;епсила&quot;. Найти сумму...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
HedgehogLu
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 260
26.09.2013, 16:03 #2
а с чего вы взяли что оно такое делает?
0
NillK
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 11
26.09.2013, 16:09  [ТС] #3
HedgehogLu, вставил после 19 строчки проверку, которая выводила i1, i2 и a.
Проверка показала, что последний символ читается 2 раза.
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.09.2013, 16:15 #4
Цитата Сообщение от NillK Посмотреть сообщение
Почему мой цикл читает 2 раза последнее число?
Он не читает два раза, а выводит два раза:
Вот так сделайте:
C++
1
while(cin >> a)
Добавлено через 1 минуту
Или вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
while(true)
{
    in>>a;
    if (in.eof()) break;
    if(a=='0')
    i1++;
    else i1 = 0;
    if(i1>i2)
    i2=i1;
 
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 16:15
Привет! Вот еще темы с ответами:

Каждый символ строки заменить на следующий за ним, а последний символ строки заменяеть первым - C++
я написал код но не могу разобраться. вот дано : ---------------------------------------------------------- В текстовом файле fin.txt...

cin.getline() не читает 1 символ - C++
Доброго времени суток :) пишу довольно простой код, но тут появилась проблема. Вот обрезаний кусок кода который не хочет работать...

File.get() читает не тот что нужно символ - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;limits&gt; #include &lt;string&gt; #include &lt;conio.h&gt; #include &lt;Windows.h&gt; using...

Последний элемент из файла выводится 2 раза - C++
Добрый вечер. Подскажите, пожалуйста, почему при чтении из файла последний элемент выводиться 2 раза? Если в файле такие данные: &quot;string1...


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

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

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