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

Выводит "мусор" при считывании файла - C++

Войти
Регистрация
Восстановить пароль
 
vladyxa13
 Аватар для vladyxa13
4 / 1 / 0
Регистрация: 15.09.2013
Сообщений: 21
20.09.2013, 17:52     Выводит "мусор" при считывании файла #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
// (c) vladyxa13
#include <iostream>
#include <conio.h>
#include <locale>
#include <fstream>
 
using namespace std;
 
int main (){
    setlocale(LC_ALL, "rus");//Консоль на гусский =)
            
        ofstream fout;//Создаем объект класса ofstream, назвать можно как угодно, но легче 
                      //запомнить fout - файловый вывод. 
        fout.open("Name file.txt");//Создаем текстовый файл и называем его Name file.txt
 
        fout << "Привет с hpc.name\n " ;//Открываем файл  Name file.txt и записываем в него эту строку,
                                        //fout - работает как cout, но только с файлами
 
    
 
        
  _getch();
  return 0;
}
Ввод

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
// (c) vladyxa13
#include <iostream>
#include <conio.h>
#include <locale>
#include <fstream>
 
using namespace std;
 
int main (){
    setlocale(LC_ALL, "rus");//Консоль на гусский =)
    
 
        ifstream fin;//Создаем объект класса ifstream, назвать можно как угодно, но легче 
                      //запомнить fin - файловый ввод. 
        fin.open ("Name file.txt");//Открываем текстовый файл Name file.txt
 
        if(!fin.is_open()){
 
            cout << "Такого файла не существует!!!";//Если файл не найден
            return -1;//Возврвщаем значение -1 выходим из программы
        }
 
        char a[15];//Создаем массив из 15 элиментов типа char
        register int i;//Создаем переменную регистра i
        
        for(int i(0); i<15; i++)//Выводим строку "Привет с hpc.name "
        {
            fin >> a[i];
            cout << a[i] ;
        }
 
        
  _getch();
  return 0;
}
Вывод и Ввод

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
// (c) vladyxa13
#include <iostream>
#include <conio.h>
#include <locale>
#include <fstream>
 
using namespace std;
 
int main (){
    setlocale(LC_ALL, "rus");//Консоль на гусский =)
            
        ofstream fout;//Создаем объект класса ofstream, назвать можно как угодно, но легче 
                      //запомнить fout - файловый вывод. 
        fout.open("Name file.txt");//Создаем текстовый файл и называем его Name file.txt
 
        fout << "Привет с hpc.name " ;//Открываем файл  Name file.txt и записываем в него эту строку,
                                        //fout - работает как cout, но только с файлами
 
        ifstream fin;//Создаем объект класса ifstream, назвать можно как угодно, но легче 
                      //запомнить fin - файловый ввод. 
        fin.open ("Name file.txt");//Открываем текстовый файл Name file.txt
 
        if(!fin.is_open()){
 
            cout << "Такого файла не существует!!!";//Если файл не найден
            return -1;//Возврвщаем значение -1 выходим из программы
        }
 
        char a[15];//Создаем массив из 15 элиментов типа char
        register int i;//Создаем переменную регистра i
        
        for(int i(0); i<15; i++)//Выводим строку "Привет с hpc.name "
        {
            fin >> a[i];
            cout << a[i] ;
        }
 
        
  _getch();
  return 0;
}
Отдельно Вывод и Ввод проги нормально функционируют, но если их склеить, то будет выводиться мусор в виде 15 знаков "M". При первом компайле все было гуд. В чем проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2013, 17:52     Выводит "мусор" при считывании файла
Посмотрите здесь:

C++ Вычищает ли "мусор" команда delete
C++ При выводе массива, выводит мусор
Аналог рекурсивной функции, отображающей строку в обратном порядке, выводит "мусор" C++
C++ Считать с файла информацию о команде "Название" "Город", количество побед, поражений, ничьих, забитых и пропущенных мячей
"Stack around the variable 'a' was corrupted" при выводе содержимого файла на экран C++
C++ При считывании файла выходит "мммммммммм"
Почему переменной присваивается произвольное значение("мусор")? C++
C++ При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор
Почему вместо обратного слеша "\" выводит "¥" C++
C++ Индекс элемента массива, для которого значение функции - минимально. "Мусор в выводе"
C++ Ошибка при быстрой сортировке файла: "string subscript out of range"
Странное поведение при работе со строками: почему программа выводит 8, если в input "МАКС"? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
20.09.2013, 17:55     Выводит "мусор" при считывании файла #2
Цитата Сообщение от vladyxa13 Посмотреть сообщение
В чем проблема?
В буферизации, например. Неплохо бы закрыть fout, прежде чем открывать тот же файл через fin.
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
20.09.2013, 17:56     Выводит "мусор" при считывании файла #3
перед считыванием строки из файла, его нужно закрыть
vladyxa13
 Аватар для vladyxa13
4 / 1 / 0
Регистрация: 15.09.2013
Сообщений: 21
20.09.2013, 18:24  [ТС]     Выводит "мусор" при считывании файла #4
Цитата Сообщение от Fyret Посмотреть сообщение
В буферизации, например. Неплохо бы закрыть fout, прежде чем открывать тот же файл через fin.
Все закрыл, все пашет.

Закрывать так
C++
1
fout.close();
Yandex
Объявления
20.09.2013, 18:24     Выводит "мусор" при считывании файла
Ответ Создать тему
Опции темы

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