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

Чтение из файла и запись в переменную - C++

Восстановить пароль Регистрация
 
metallix
 Аватар для metallix
10 / 10 / 3
Регистрация: 07.09.2013
Сообщений: 48
06.01.2014, 03:13     Чтение из файла и запись в переменную #1
всем привет)
Недавно начал изучение чтение и запись из/в файлы. Вот настряпал небольшой код:
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 <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
 
 using namespace std;
 
int main(){
    
string str;
int size = 0;
 
fstream file;
file.open("msg.txt", fstream::in);
   if(file)
   {
    while(!file.eof())
        {
            file.get(str[size]);
            size++;
        }
   }
   else
     cout<<"File no found"<<endl;
    
    for(int i = 0; i < size; i++)
            {
                cout << str[i];
            }
           
    system("pause>>nul");
    return 0;
    }
Нужно что бы программа считывала текстовую информацию из файла и сохраняла её. Сохраняю я ее в string переменную, и потом пытаюсь вывести. Вроде бы всё правильно выводит, но как только пытаюсь закрыть окно т.е консоль, то вылетает ошибка что программа перестала работать, т.е. завершила работу аварийно.
И если пытаюсь закрыть работу с файлом - file.close() - то программа сразу же падает при запуске.
Вопрос - в чем может быть проблема ? Вариантов пробовал много. IDE - DevC++. В MVS2013 тоже самое =/
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2014, 03:13     Чтение из файла и запись в переменную
Посмотрите здесь:

Запись и чтение с файла C++
C++ запись\чтение из файла
C++ Чтение из файла в переменную типа string
запись и чтение с файла C++
C++ Запись данных в переменную из текстового файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 727
06.01.2014, 03:15     Чтение из файла и запись в переменную #2
а что если написать вместо
C++
1
system("pause>>nul");
это
C++
1
system("PAUSE");
сам в VS полный нуль
Skolos
0 / 0 / 0
Регистрация: 29.04.2013
Сообщений: 6
06.01.2014, 03:19     Чтение из файла и запись в переменную #3
Цитата Сообщение от metallix Посмотреть сообщение
system("pause>>nul");
* * return 0;
* * }
Или же вместо system("pause>>nul");
вбей getch();
завершится после нажатия клавиши.
metallix
 Аватар для metallix
10 / 10 / 3
Регистрация: 07.09.2013
Сообщений: 48
06.01.2014, 03:24  [ТС]     Чтение из файла и запись в переменную #4
Цитата Сообщение от tdo22 Посмотреть сообщение
а что если написать вместо
C++
1
system("pause>>nul");
это
C++
1
system("PAUSE");
сам в VS полный нуль
C++
1
system("pause>>nul");
не выводит строку - "Press any key to continue";

C++
1
getch()
тоже не вариант, уже пробовал.
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 727
06.01.2014, 03:33     Чтение из файла и запись в переменную #5
Цитата Сообщение от metallix Посмотреть сообщение
не выводит строку - "Press any key to continue";

Не по теме:

хех, даже не знал, спасибо

outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
06.01.2014, 03:43     Чтение из файла и запись в переменную #6
tdo22, Skolos, metallix, напомню что вы пишите на C++ а не на C.
C++
1
std::cin.ignore();
Вполне достаточно что-бы подождать ввода без оповещения.

Добавлено через 1 минуту
Цитата Сообщение от metallix Посмотреть сообщение
не выводит строку - "Press any key to continue";
Ну так выведите
C++
1
2
std::cout << "Press enter key to continue";
std::cin.ignore();
metallix
 Аватар для metallix
10 / 10 / 3
Регистрация: 07.09.2013
Сообщений: 48
06.01.2014, 13:56  [ТС]     Чтение из файла и запись в переменную #7
Причем тут это ? system("pause>>nul") у меня всегда по дефолту стоит.
Попробуйте у себя этот код запустить несколько раз. и добавить file.close() после while() цикла.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.01.2014, 14:26     Чтение из файла и запись в переменную #8
Цитата Сообщение от metallix Посмотреть сообщение
Вроде бы всё правильно выводит, но как только пытаюсь закрыть окно т.е консоль, то вылетает ошибка что программа перестала работать, т.е. завершила работу аварийно.
C++
1
file.get(str[size]);
К пустой строке нельзя по индексу обращаться.

Добавлено через 7 минут
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
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    string str;
    
    ifstream file("msg.txt");
    if(file)
    {
        char ch;
        while(file.get(ch))
            str += ch;
 
        cout << str << endl;
    }
    else
        cout<<"File no found"<<endl;
    
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2014, 14:34     Чтение из файла и запись в переменную
Еще ссылки по теме:

Запись и чтение из файла C++
Чтение и запись из файла C++
Запись из файла в переменную C++

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

Или воспользуйтесь поиском по форуму:
metallix
 Аватар для metallix
10 / 10 / 3
Регистрация: 07.09.2013
Сообщений: 48
06.01.2014, 14:34  [ТС]     Чтение из файла и запись в переменную #9
Ах, вот оно что. Спасибо большое ))
Yandex
Объявления
06.01.2014, 14:34     Чтение из файла и запись в переменную
Ответ Создать тему
Опции темы

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