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

Запись в файл, чтение из файла - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
PEVELASKA
3 / 3 / 0
Регистрация: 20.09.2012
Сообщений: 57
12.05.2013, 16:04     Запись в файл, чтение из файла #1
В общем, неделю назад мне помогли на этом форуме сделать программу. И все прекрасно работает на visual studio, но в универе у нас везде стоит борланд, а на борланде выбивает довольно странную ошибку. Суть задания : Открыть файл, записать туда 10 рандомных чисел, закрыть файл, открыть файл вывести все эти рандомные числа на экран, посчитать их сумму.
Ошибка: выводит 10 нормальных чисел, а затем выводит какой-то мусор(очень огромное число) и считает сумму вместе с этим огромным числом. Вот сам код :
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
#include <iostream.h>
#include <fstream>
#include <cstdlib>
#include <time.h>
#include <vcl.h>
 
 
 
 
int main ()
{
 
 
 srand (time(NULL));
 
    ofstream fout("test.txt");
    for(int i=0; i<10; ++i)
        fout<<(rand ()%10)<<' ';
    fout.close();
 
    ifstream fin("test.txt");
    int sum=0,tmp;
 
 
 
 
    while (!fin.eof())
    {
         fin>>tmp;
          cout<<tmp<<' ';
          sum += tmp;
 
    }
    cout<<endl;
    cout << sum << endl;
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2013, 16:04     Запись в файл, чтение из файла
Посмотрите здесь:

C++ запись в файл и чтение из файла
чтение из файла и запись в файл. C++
Чтение из файла, запись в файл C++
запись в файл и чтение из файла C++
Чтение из файла/Запись в файл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Desu_Is_A_Lie
 Аватар для Desu_Is_A_Lie
62 / 62 / 3
Регистрация: 26.02.2012
Сообщений: 114
12.05.2013, 16:30     Запись в файл, чтение из файла #2
Флаг EOF выставляется ПОСЛЕ попытки чтения, а не до. Посему следует делать так (если чтение не удастся, то цикл прервётся).
C++
1
2
3
4
5
while (fin>>tmp)
{
    cout<<tmp<<' ';
    sum += tmp;
}
PEVELASKA
3 / 3 / 0
Регистрация: 20.09.2012
Сообщений: 57
12.05.2013, 16:35  [ТС]     Запись в файл, чтение из файла #3
Desu_Is_A_Lie, спасибо большое, так и правда работает, но не совсем понятна инструкция
C++
1
while (fin>>tmp)
как это понимать ?
Desu_Is_A_Lie
 Аватар для Desu_Is_A_Lie
62 / 62 / 3
Регистрация: 26.02.2012
Сообщений: 114
12.05.2013, 17:23     Запись в файл, чтение из файла #4
Если чтение не удастся (будет выставлен 'плохой' флаг), то операция >> вернёт ноль, и цикл прервётся.
PEVELASKA
3 / 3 / 0
Регистрация: 20.09.2012
Сообщений: 57
12.05.2013, 19:18  [ТС]     Запись в файл, чтение из файла #5
Desu_Is_A_Lie, спасибо
Yandex
Объявления
12.05.2013, 19:18     Запись в файл, чтение из файла
Ответ Создать тему
Опции темы

Текущее время: 06:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru