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

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

Войти
Регистрация
Восстановить пароль
 
 
Даниил
68 / 41 / 7
Регистрация: 14.05.2013
Сообщений: 383
#1

Файловый ввод-вывод - "A + B" - C++

28.07.2013, 17:44. Просмотров 587. Ответов 15
Метки нет (Все метки)

Казалось бы простенькая задача, а решить я её не могу
Пробовал несколько вариантов, всё равно не выходит
Накидал такое:
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 <stdafx.h>
# include <iostream>
# include <fstream>
#include <conio.h>
using namespace std;
int d[1000000], n;
int sum (int l, int r)
{
   int ans = 0;
   n = r - l + 1;
   for (int i = l, j = 1; i <= r; ++i, ++j)
    d[j] = i;
   for (int i = 1; i <= n; ++i)
    ans += d[i];
   return ans;
}
int main()
{
    ifstream read_file ("input.txt");
    ofstream write_file ("output.txt");
    int a, b;
    read_file >> a >> b;
    write_file << sum (a, b) << "\n";
    for (int i = 1; i <= n; ++i)
     write_file << d[i] << " ";
    getch();
    return 0;
}
Создаю в папке (в папке с программой) файл input.txt, пишу туда 2 числа через пробел "20 10"
Но ничего не происходит, т.е. программа компилируется, я её запускаю, но ничего не происходит, результат не записывается в файл output.txt (такой файл вообще не создается)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2013, 17:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файловый ввод-вывод - "A + B" (C++):

Решить задачу на файловый ввод/вывод (игра "Города") - C++
Не могу понять задачу и решить её на Си!!! Срочно! Дело в том что я сейчас на зачёте, и мне больше некуда обратиться. Помогите прошу...

Структура "Телефонная книга", файловый ввод/вывод - C++
#define _CRT_SECURE_NO_WARNINGS #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstdlib&gt; #include &lt;tchar.h&gt; #include &lt;conio.h&gt; ...

Найти причины возникновения ошибки "out of range" (файловый ввод/вывод) - C++
if(READ) { char text2; std::ifstream *file=new std::ifstream(&quot;Rec.txt&quot;); std::ifstream *file1=new std::ifstream(&quot;Rec.txt&quot;); ...

Написать структуру "Список книг" (бинарный файловый ввод/вывод) - C++
Здравствуйте, Дорогие форумчане! Всех с наступающим. Задача: написать 2 консольных приложения: 1-ое осуществляет вывод списка &quot;книг&quot; в...

Исправить ошибку "can't open input file" (файловый ввод/вывод) - C++
в программе прописан параметр - название текстового файла pushkin.txt Программа выполняется без ошибок, но записи в файл нет, даже если...

Файловый ввод/вывод: в строке поменять местами слова, разделенные союзом "и" - C++
Задача такая : для заданной строки S поменять местами слова, разделенные союзом &quot;и&quot;. Текст нужно считывать с заранее созданного файла...

15
Ryabchik
18 / 18 / 1
Регистрация: 09.01.2013
Сообщений: 163
28.07.2013, 18:31 #2
Я правильно понял, вы так извращенски находите сумму двух чисел?
У вас в цикле i = 20; i < 10
Попробуйте считать, закрыть поток : read_file.close () и потом открыть поток write_file
0
Даниил
68 / 41 / 7
Регистрация: 14.05.2013
Сообщений: 383
28.07.2013, 18:59  [ТС] #3
Я не очень люблю эти извращения с ЯП, но решил хоть разок побаловаться...))
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.07.2013, 19:08 #4
Цитата Сообщение от Даниил1991 Посмотреть сообщение
Создаю в папке (в папке с программой) файл input.txt
Что за папка?
Во-первых, нужно всегда проверять открытие файла для чтения:
C++
1
2
ifstream read_file ("input.txt");
if (!read_file.is_open()) cout << "Error!" << endl;
Во-вторых, где ищите файл "output.txt"? Может не там? Не может не создаваться.
0
Ryabchik
18 / 18 / 1
Регистрация: 09.01.2013
Сообщений: 163
28.07.2013, 19:20 #5
Цитата Сообщение от Даниил1991 Посмотреть сообщение
Я не очень люблю эти извращения с ЯП, но решил хоть разок побаловаться...))
Я просто не понимаю, зачем так сложно находить сумму двух чисел?
0
Даниил
68 / 41 / 7
Регистрация: 14.05.2013
Сообщений: 383
28.07.2013, 19:44  [ТС] #6
Цитата Сообщение от Ryabchik Посмотреть сообщение
Я просто не понимаю, зачем так сложно находить сумму двух чисел?
Дело в том, что нужно именно записать сумму двух чисел в файл
Так то конечно, мелочь, написать
C++
1
2
3
4
5
int main(){
int a, b;
cin >> a >> b;
cout << a + b;
}
Но тут нужно чтоб сумма ввелась в файл

Добавлено через 2 минуты
alsav22, А, точно, не там искал
файл то появился, но...
Короче, код:
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
#include <stdafx.h>
# include <iostream>
# include <fstream>
#include <conio.h>
using namespace std;
int d[1000000], n;
int sum (int l, int r)
{
   int ans = 0;
   n = r - l + 1;
   for (int i = l, j = 1; i <= r; ++i, ++j)
    d[j] = i;
   for (int i = 1; i <= n; ++i)
    ans += d[i];
   return ans;
}
int main()
{
    ifstream read_file ("input.txt");
    ofstream write_file ("output.txt");
    /*
       для считывания с файла input.txt мы будем 
       использовать функцию read_file, 
       можете заменить ее на что-нибудь другое
    */
    int a, b;
    read_file >> a >> b;
    write_file << sum (a, b) << "\n";
    for (int i = 1; i <= n; ++i)
     write_file << d[i] << " ";
    getch();
    return 0;
}
Файл input.txt:
10 20

Файл output.txt (который создался после запуска программы):
-858993460
-858993460

0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.07.2013, 20:12 #7
Ещё раз:
Цитата Сообщение от alsav22 Посмотреть сообщение
Во-первых, нужно всегда проверять открытие файла для чтения:
0
Даниил
68 / 41 / 7
Регистрация: 14.05.2013
Сообщений: 383
28.07.2013, 21:34  [ТС] #8
Думаете что проблема в том что программа не может открыть файл?
А как же такое исправить?
Ах, я думаю что понял
Я нашел файл output.txt в другой папке, т.е. input.txt был в одной, а output.txt в другой, так что я сейчас попробую поместить input.txt туда же
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.07.2013, 21:35 #9
И ещё раз:
Цитата Сообщение от alsav22 Посмотреть сообщение
Во-первых, нужно всегда проверять открытие файла для чтения:
C++
1
2
ifstream read_file ("input.txt");
if (!read_file.is_open()) cout << "Error!" << endl;
0
Даниил
68 / 41 / 7
Регистрация: 14.05.2013
Сообщений: 383
28.07.2013, 22:01  [ТС] #10
Сумма 10 и 20 это 0?Может я считать разучился?))
Проверил, вставил ваш, alsav22, код (проверка на открытие файла), файл открывается
Но сумма 10 и 20 не может быть 0, ведь так?

Добавлено через 24 минуты
Только что попробовал вставить два однозначных числа (5 и 5) в файл input.txt, но результат:
В файл output.txt записалось:
5
5
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.07.2013, 22:15 #11
Если отладчиком пользоваться не умеете, то хотя бы так напишите:
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
# include <iostream>
# include <fstream>
#include <conio.h>
using namespace std;
int d[1000000], n;
int sum (int l, int r)
{
   int ans = 0;
   n = r - l + 1;
   for (int i = l, j = 1; i <= r; ++i, ++j)
    d[j] = i;
   for (int i = 1; i <= n; ++i)
    ans += d[i];
   return ans;
}
int main()
{
    ifstream read_file ("input.txt");
    if (!read_file.is_open()) cout << "Error!" << endl;
    else
    {
        ofstream write_file ("output.txt");
        int a, b;
        read_file >> a >> b;
        cout << "a = " << a << ' ' << "b = " << b << endl;
        int s = sum(a, b);
        cout << "sum = " << s << endl;
        write_file << s << "\n";
        for (int i = 1; i <= n; ++i)
         write_file << d[i] << " ";
    }
    getch();
    return 0;
}
В input.txt:
10 20

В output.txt:
165
10 11 12 13 14 15 16 17 18 19 20
1
Миниатюры
Файловый ввод-вывод - "A + B"  
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.07.2013, 22:16 #12
Если непонятно пчему 165, то обратитесь к автору функции sum().
0
Даниил
68 / 41 / 7
Регистрация: 14.05.2013
Сообщений: 383
28.07.2013, 22:20  [ТС] #13
Не надо меня уже в школоло-ламеры записывать

Добавлено через 34 секунды
Ладно, спасибо, хоть это и не совсем правильное решение задачи, но всё равно, спасибо
0
alsav22
28.07.2013, 22:22
  #14

Не по теме:

Цитата Сообщение от Даниил1991 Посмотреть сообщение
Не надо меня уже в школоло-ламеры записывать
Кто посмел?

0
Даниил
68 / 41 / 7
Регистрация: 14.05.2013
Сообщений: 383
28.07.2013, 22:25  [ТС] #15
Видимо я вас не так понял
))
Просто вы меня тоже правильно поймите, я новичёк, и это вполне нормально - допускать ошибки
"Кто не допускает ошибок, тот не работает"
0
28.07.2013, 22:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2013, 22:25
Привет! Вот еще темы с ответами:

Поиск в массиве объектов типа "Student" по заданному полю (файловый ввод/вывод) - C++
Помогите написать программу 1. Файл содержит итоги контрольного срока, каждая запись которого содержит поля: фамилия студента и средний...

Поиск в массиве объектов типа "Student" по заданному полю (файловый ввод/вывод) - C++
Здравствуйте. Стоит такая задача: Создать структуру «студент» со следующими данными: фамилия, имя, отчества, пол, факультет, курс,...

Реализовать поиск в массиве структур "Student" по заданному полю (файловый ввод/вывод) - C++
Помогите написать программы... 1. Пусть на диске текстовый файл ' Hrupa.txt ' , каждая строка которого имеет следующую структуру:...

Переделать ввод / вывод с "C++" на "С" - C++
Здраствуйте, нашел здесь на форуме код написаный на С++ #include &lt;iostream&gt; int func_one (int, int, int); // по значению. int...


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

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

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