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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 74, средняя оценка - 4.76
maSt
5 / 5 / 1
Регистрация: 28.02.2010
Сообщений: 166
#1

Считывание до конца файла - C++

16.08.2012, 15:29. Просмотров 11551. Ответов 6
Метки нет (Все метки)

В каждой строке файла 2 целых числа.
Нужно считать по 2 числа до конца файла и выводить в каждую строку сумму этих двух чисел.
Раньше с файлами в С++ не работал.
Можете объяснить как считывать ,выводить данные и какие команды что делают?
Искал в интернете нормальные описания, но не нашёл.
Пожалуйста, помогите разобраться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2012, 15:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание до конца файла (C++):

Считывание байтов с конца файла - C++
Добрый день, уважаемые форумчане. Возник вопрос: Как считывать байты с конца файла? Конкретно: Имеется файл (.txt) в котором находится...

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

Считывание до конца входного потока - C++
Что значит считывание данных до конца входного потока? Знаю, что на C++ реализуется так. А что является концом входного потока? И как это...

Считывание до конца потока в числовой массив - C++
Здравствуйте. Проблема с Как реализовать считывание до конца потока из файла вместе со scanf() или != EOF. В поиске нашёл реализацию...

Заменить считывание с клавиатуры на считывание из файла - C++
Помогите пожалуйста, ни разу не работал со считыванием из файла поэтому не понимаю как и что делать. Почитал в интернете, попробовал, не...

Перебор файла посимвольно, как организовать цикл, работающий до конца файла. - C++
Нужно перебрать файл посимвольно и, учитывая спецсимволы записать содержимое файла в Memo1. Помогите пожалуйста организовать цикл...

6
Пaтрик
416 / 391 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
16.08.2012, 15:34 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
 
int main()
{
    std::ifstream inp("numbers.txt");
    if (!inp.is_open())
        return 1;
    int number1, number2;
    while (inp >> number1 && inp >> number2)
        std::cout << number1 << " + " << number2 << " = " 
                  << (number1 + number2) << std::endl;
    inp.close();
}
1
SubTerran
8 / 8 / 0
Регистрация: 13.08.2012
Сообщений: 18
16.08.2012, 15:35 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include<fstream>
 
using namespace std;
 
int main()
{
    string namefile = "file.txt";
 
    ifstream ifs(namefile.c_str());
    if (!ifs) cerr << "can't open file\n";
 
    int a = 0;
    int b = 0;
 
    while (ifs >> a >> b)
        cout << a + b << '\n';
    
    system("pause");
    return 0;
}
1
-=ЮрА=-
Заблокирован
Автор FAQ
16.08.2012, 15:56 #4
maSt, можно считывать в несколько способов, парни выше показали тебе потоковый ввод тобишь ifstream>> сейчас накидаю тебе ещё несколько примеров. Также отмечу что важен формат в котором твои числа хранятся в файле(с истинно бинарными файлами трюк с потоковым вводом не прокатит)
0
-=ЮрА=-
Заблокирован
Автор FAQ
16.08.2012, 16:17 #5
maSt, ниже пример с текстовым форматом данных с возможностью подсчёта числа параметров в строке а также обнаружением пустых строк
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <string>
#include <sstream>
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{
    int val;
    int count;
    string line;//Áóäåò ñîäåðæГ*ГІГј òåêóçóþ ñòðîêó ГЁГ§ ГґГ*éëГ*
    ifstream ifs;//ÎáúÿâëåГ*ГЁГҐ ïîòîêГ* Г·ГІГҐГ*ГЁГї
    stringstream ss;//Ñòðîêîâûé ïîòîê (òîæå Г·ГІГ® ГЁ ifstream
    //Г*Г® äëÿ ñòðîêè - óäîáГ*Г*Гї ГўГҐГ№Гј âîáùåì)
    //Г‡Г*ïîìГ*ГЁ ГЅГІГі ГґГЁГ·Гі Г± open
    ifs.open("input.txt");//Г€Г*èöèГ*ëèçГ*öèÿ ïîòîêГ* Г·ГІГҐГ*ГЁГї
    if(!ifs.is_open())//ÏðîâåðêГ* îòêðûëñÿ ГґГ*éë èëè Г*ГҐГІ
        cout<<"Error open input.txt\n";
    else
    {
        //Åñëè Г±ГѕГ¤Г* ïîïГ*ëè ГІГ® ГґГ*éë ГўГ±Вё ГІГ*ГЄГЁ îòêðûëñÿ
        //ÈòГ*ГЄ Гї îáåùГ*Г« Г·ГІГ® Г·ГІГҐГ*ГЁГҐ áóäåò ГЎГҐГ§ ïðÿìîãî ïîòîêâîãî ââîäГ*
        while(getline(ifs,line))
        {
            count = 0;
            //Ïî÷åìó Г·ГЁГІГ*ГҐГ¬ Гў ñòðîêó? - Ïîòîìó ГЄГ*ГЄ ìîæåì
            //ïðîâåðèòü Г±ГЁГІГіГ*öèþ êîãäГ* ñòðîêГ* ГЇГіГ±ГІГ*
            //ëèáî êîãäГ* Гў Г*ГҐГ© 1-Г* ëèáî áîëåå ГЇГ*Г°Г*ìåòðîâ
            //ГІГ*êîé ââîä>> Г*ГҐ ïîçâîëèò Г*Г*Г¬ âûÿâëÿòü ГІГ*ГЄГЁГҐ ìîìåГ*ГІГ»
            cout<<line<<" params count: ";
            ss.str(line);//Г€Г*èöèГ*ëèçèðóåì Г*Г*ГёГҐГ© ñòðêîîé ïîòîê
            while(ss>>val)
                count++;
            if(count == 0)
                cout<<"line is empty!";
            else
            {
                cout<<count<<" params : ";
                //ГЋГІГ¬Г*ГІГўГ*ГҐГ¬ ñòðèГ*ãïîòîê ГўГ*Г*Г·Г*ëî
                    ss.clear();//ÑáðГ*ñûâГ*ГҐГ¬ ГґГ«Г*ГЈ EOF Гў ñòðèГ*ãïîòîêå
                ss.seekg(0,ios::beg);//Г¤Г*Г*Г*ûõ ñòðîêè
                while(ss>>val)
                    cout<<val<<" ";
            }
            ss.clear();//ÑáðГ*ñûâГ*ГҐГ¬ ГґГ«Г*ГЈ EOF Гў ñòðèГ*ãïîòîêå
            cout<<endl;
 
        }
        ifs.close();//Г‡Г*êðûòèå ïîòîêГ* Г·ГІГҐГ*ГЁГї
    }
    
    return 0;
}
Содержимое input.txt
5 5
15
45 41 54

15 45
21 241 12 12 36
1
Миниатюры
Считывание до конца файла  
maSt
5 / 5 / 1
Регистрация: 28.02.2010
Сообщений: 166
16.08.2012, 16:18  [ТС] #6
Спасибо всем большое, сейчас буду разбираться.
0
-=ЮрА=-
16.08.2012, 16:19     Считывание до конца файла
  #7

Не по теме:

maSt, это ещё не всё по чтению файлов, как я говорил есть ещё бинарные файлы в которых числа пишутся байтами и в тектовике такие файлы выглядят абракадаброй, если есть желание могу показать работу с ними

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2012, 16:19
Привет! Вот еще темы с ответами:

Чтение файла с несколькими знаками конца файла - C++
В файле несколько раз встречается ноль, и ни как не получается прочитать его полностью. Как можно решить данную проблему ?

Считывание файла в массив и запись нового файла - C++
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100 байт в массив - и сразу они переписываются в другой файл. В...

определения конца файла - C++
Как определить конец файла если я открываю файл fopen и считываю данные через freed ? int reedFileT(Dek *&amp;ldek,Dek *&amp;rdek) { ...

Условие конца файла - C++
Имеем функцию: void Inpfile (stud&amp; s) { ifstream base(&quot;base.txt&quot;); if(!base)std::cout &lt;&lt; &quot;Can't create input file&quot;; ...


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

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

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