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

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

Войти
Регистрация
Восстановить пароль
 
 
Toshik_
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
#1

Не могу понять почему в файл OUTPUT.TXT ничего не записывается - C++

28.08.2013, 17:08. Просмотров 881. Ответов 21
Метки нет (Все метки)

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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    
    int n,i;
    ifstream in("INPUT.TXT");
    in >> n;
    int a=0, b=0;
    int s;
    ofstream out("OUTPUT.TXT");
    for(i=0; i<n; i++){
        s=a+(a+1);
    b=b+1;
    a=a+1;
        if(n==s){
            out << "1" << '\n' << b;
        }
        else {
            if(i==n)
                out << '0';
            continue;
        }
    }
    return 0;
    }
Не могу понять почему в файл OUTPUT.TXT ничего не записывается, а по идее должно...
Т.е. в файле INPUT.TXT лежит число, и надо определить равно ли оно сумме двух предшествующих чисел, если да
то вывести 1 и порядковый номер числа в данной последовательности, если нет то вывести 0.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2013, 17:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу понять почему в файл OUTPUT.TXT ничего не записывается (C++):

Найти минимальное и максимальное числа из input.txt и записать его в файл output.txt - C++
Еще раз приветствую дорогие программисты.Надеюсь на вашу помощь. Найти минимальное и максимальное числа из input.txt и записать его в...

Исправить программу, чтоб считывала текст из файла Input.txt и выводит в файл Output.txt - C++
Даны координаты центра и радиус R окружности, координаты точки. Найти точки пересечения касательных с окружностью input.txt 1 1 1 2 2...

Переписать данные файла input.txt в файл output.txt, отсортировать их в алфавитном порядке по фамилии - C++
Народ меня тут 11 задач мне нужно их подробно прокомментировать какая строчка что делает(пример первая задача) помогите плиз кому не...

В файле input.txt содержатся сведения о группе студентов. переписать данные файла в файл output.txt, отсортировав их по возрастанию - C++
Добрый вечер!!! Я - новичок по работе с С++, помогите, пожалуйста, написать программу на этом языке. В файле input.txt содержатся сведения...

Не всё записывается в файл. Ничего не понимаю - C++
Здравствуйте. У меня появилась такая проблема: нужно записать в один файл данные из двух функций. Казалось бы, что ничего сложного. Но вот...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 17:32 #2
Файл "INPUT.TXT" существует? И что, например, в нём?

Добавлено через 13 минут
Если так:
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    
    int n,i;
    ifstream in("INPUT.TXT");
    in >> n;
    int a=0, b=0;
    int s;
    ofstream out("OUTPUT.TXT");
    for(i = 0; i < n; i++)
    {
        s = a + (a + 1);
        b = b + 1;
        a = a + 1;
        if(n == s)
        {
            out << "1" << '\n' << b;
            break;
        }
        else 
        {
            if(i == (n - 1))
            {
                out << '0';
                break;
            }
        }
    }
    
    system("pause");
    return 0;
}
0
Toshik_
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
28.08.2013, 17:32  [ТС] #3
существует, 8
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
28.08.2013, 17:51 #4
интересная конструкция
Цитата Сообщение от Toshik_ Посмотреть сообщение
C++
1
2
3
4
5
else {
 if(i==n)
  out << '0';
  continue;
   }
зачем здесь continue и без него идем на следующюю итерацию
далее
Цитата Сообщение от Toshik_ Посмотреть сообщение
C++
1
2
3
4
5
6
7
for(i=0; i<n; i++){
...............
if(i==n)
 out << '0';
 continue;
}
}
в цикле никогда i не будет равна n из за условия в заголовке цикла i<n значит 0 не записывается в файл
далее

Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
s = a + (a + 1);
 b = b + 1;
 a = a + 1;
первая итерация
s = a + (a + 1);=0+1=1
b = b + 1; 0+1=1;
a = a + 1; 0+1=1
вторая
s = a + (a + 1);=1+2=3
b = b + 1; 1+1=2;
a = a + 1; 1+1=2
третья
s = a + (a + 1);=2+3=5
b = b + 1; 2+1=3;
a = a + 1; 2+1=3
четвертая
s = a + (a + 1);=3+4=7
b = b + 1; 3+1=4;
a = a + 1; 3+1=4
пятая
s = a + (a + 1);=4+5=9
b = b + 1; 4+1=5;
a = a + 1; 4+1=5

следовательно и эта ветка
Цитата Сообщение от Toshik_ Посмотреть сообщение
C++
1
2
if(n==s){
out << "1" << '\n' << b;
никогда не запишет в файл при n=8

легко увидеть что
s = a + (a + 1); тоже что и s = i+ (i + 1);
s=2*i+1;
число нечетное
значит для записи в файл n должен быть нечетным
0
zer0mail
2334 / 1960 / 192
Регистрация: 03.07.2012
Сообщений: 7,029
Записей в блоге: 1
28.08.2013, 17:55 #5
Похоже на задачи с тестовых сайтов, а по условию прохоже на проверку, входит ли число в ряд фибоначчи (кстати, 8-ка входит). Но условие изложено столь невразумительно, что точно сказать нельзя.
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
28.08.2013, 18:10 #6
Цитата Сообщение от zer0mail Посмотреть сообщение
по условию прохоже на проверку, входит ли число в ряд фибоначчи (кстати, 8-ка входит).
ну если смотреть на
Цитата Сообщение от Toshik_ Посмотреть сообщение
s=a+(a+1);
да похоже на Фибоначчи
но только тогда следующее число ни как не
Цитата Сообщение от Toshik_ Посмотреть сообщение
a=a+1;
а так же
a=a+(a+1);
или попроще
то
a=2*a+1;

Добавлено через 3 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
или попроще
то
a=2*a+1;
наврал я не все так просто
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 18:14 #7
Цитата Сообщение от ValeryS Посмотреть сообщение
никогда не запишет в файл при n=8
При 8 разве в файл должна записаться 1?
Цитата Сообщение от Toshik_ Посмотреть сообщение
надо определить равно ли оно сумме двух предшествующих чисел,
Если я правильно понял, то 6 + 7 != 8, записываем 0. Но логику расчётов я вообще не смотрел, сделал, чтобы запись была в двух случаях. С логикой пусть ТС сам разбирается. Вопрос был про запись в файл.
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
28.08.2013, 18:19 #8
Цитата Сообщение от alsav22 Посмотреть сообщение
Если я правильно понял, то 6 + 7 != 8, записываем 0.
нет не записываем
из-за
Цитата Сообщение от Toshik_ Посмотреть сообщение
C++
1
2
if(i==n)
 out << '0';
а i не равна n, по крайней мере в цикле из-за
Цитата Сообщение от Toshik_ Посмотреть сообщение
C++
1
for(i=0; i<n; i++)
если записать хотя бы вот так
C++
1
for(i=0; i<=n; i++)
то запишется
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 18:24 #9
Цитата Сообщение от ValeryS Посмотреть сообщение
нет не записываем
из-за
Вы мой код смотрели?
Цитата Сообщение от alsav22 Посмотреть сообщение
else
{
if(i == (n - 1))
{
out << '0';
break;
}
}
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
28.08.2013, 18:30 #10
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы мой код смотрели?
нет
я оригинальный смотрел и все ошибки относятся к нему
мы же ошибки ТС разбираем

Добавлено через 2 минуты
кстати
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
if(i == (n - 1))
 {
 out << '0';
 break;
 }
break то зачем?
i == (n - 1) итак последняя итерация без бряка из цикла выйдем
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 18:33 #11
Цитата Сообщение от ValeryS Посмотреть сообщение
break то зачем?
i == (n - 1) итак последняя итерация
Зачем лишние действия, если все равно выход?
0
zer0mail
2334 / 1960 / 192
Регистрация: 03.07.2012
Сообщений: 7,029
Записей в блоге: 1
28.08.2013, 18:36 #12
Зачем смотреть код ТС - он все равно "кривой" ТС уже новую тему создал для этой задачи. Похоже, хочет "порешать" задачи через форум (как будто это поможет стать программистом)
"Разруха начинается головах" (с) Преображенский. Невозможно с расплывчатыми невнятными мыслями написать ясную, правильно работающую программу.
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
28.08.2013, 18:47 #13
Цитата Сообщение от alsav22 Посмотреть сообщение
Зачем лишние действия, если все равно выход?
это ты меня спрашиваешь ?
тот же вопрос я и задал
Цитата Сообщение от zer0mail Посмотреть сообщение
Зачем смотреть код ТС - он все равно "кривой"
ну-к я думал указать человеку на ошибки
даже целую портянку расписал
Цитата Сообщение от zer0mail Посмотреть сообщение
ТС уже новую тему создал для этой задачи.
да уже вижу
и самоустроняюсь
но не для вас alsav22 и zer0mail
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 18:51 #14
ValeryS, вы, наверное, не поняли про лишние действия. Если break, то сразу выход. Если без break, то обращение к параметрам цилка, увеличение i, сравнение с n, и только потом выход. Я про эти лишние действия спросил. Зачем они?
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
28.08.2013, 18:58 #15
Цитата Сообщение от alsav22 Посмотреть сообщение
Если без break, то обращение к параметрам цилка, увеличение i, сравнение с n, и только потом выход.
ну да, но это копейки а логика уже не столь стройная
этак можно в любом цикле писать
C++
1
2
3
4
5
6
for(int i=0; i<n; i++)
{
 ...............................
if(i==(n-1)
  break;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2013, 18:58
Привет! Вот еще темы с ответами:

Давно не писала ничего на Dev C++ выдает ошибки не могу понять как их исправить - C++
#include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; int main() { float xa,xb,xc,ya,yb,yc; ...

Работа с файлами. Найти среднее арифметическое всех чисел и записать его в файл output.txt - C++
Помогите написать, пожалуйста 2 программы на C++. В файле input.txt записаны числа, сколько их – неизвестно. «3»: Найти среднее...

Почему в файл значение дублируется (записывается дважды)? - C++
Суть: при чтении с файла f записываю данные(числа) в массив a. Потом значения этого массива по очереди записываю в файл f1 и f2. Все...

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


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

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

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