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

Проблеммы с выводом информации на монитор из файла - C++

Восстановить пароль Регистрация
 
sdima75
1 / 1 / 0
Регистрация: 12.09.2013
Сообщений: 27
12.09.2013, 18:42     Проблеммы с выводом информации на монитор из файла #1
Задача.

Из файла (3 строки и 5 столбцов) надо взяв эти цифры, вывести их на экран.


Текстовый файл
01 04 30 25 12
08 09 14 17 35
02 10 07 22 33

Результат
Вложение 306609

Буду благодарен всем кто поможет в решении проблемы!





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
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <fstream> // для работы с потоками - чтения и для записи данных в файл. 
#include <conio.h> // Для закрытия программы по нажатию на любую клавишу.
#include <clocale> // для констант LC_ - например для поддержки русского языка.
#include <string> // string - представляет из себя коллекцию, хранящую символы char в формате ASCII.
#include <ctime> // Директива определения времени работы.
 
using namespace std; // чтоб часто не писать std.
 
 
 
 
void Password () // создаём проверку входа в ситему.
{
    cout << "Введите пароль" << endl;
    string pass = "1";
    string user_pass;
    getline(cin, user_pass); // getline -применяется для ввода со строки как я понял.
    if (pass == user_pass)
    { cout << endl <<"Добро пожаловать в программу!" << endl;}
    else { cout <<"Пароль не верен!" << endl << endl; Password ();}
} 
int NenyjChusla()
{
    const int n = 3; // строки.
    const int m = 5; // столбцы.
    int a[n][m]; // Объявили массив.
    fstream fs("stat.txt");//fs - надо т.к. у нас ввод и вывод информации.
    if (NULL == fs) 
    {
        printf("Не удалось открыть файл!\n");
        return 0;
    }
    
    for (int i = 0; i < n; i++)
{
    for (int j = 0; j < m; j++)
    {
        fs >> a[i][j];
        cout << "a[" << i << "][" << j << "] = " << a[i][j];
    }
    cout << endl;
    
fs.close();// быстрее всего закрытие файла и потока.
 
} 
}
 
int main()
{
    setlocale(LC_CTYPE,"Russian");
    srand(time(0)); // Запускаем рабоу счётчика времени.
    
    Password (); // Функция проверки пароля.
 
    NenyjChusla(); // Функция получения ненужных чисел.
 
 
    cout << "Время работы программы = " << clock()/1000.0 << "\a" << endl; // полное время работы программы 
    cout << "Для выхода из программы нажмите любую клавишу.";
 
        _getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2013, 18:42     Проблеммы с выводом информации на монитор из файла
Посмотрите здесь:

считывание информации из файла! C++
C++ Неразбериха с выводом данных из файла
Вывод лишней информации из файла C++
C++ Чтение информации из файла
Что-то не то с выводом сохранённых данных из бинарного файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
12.09.2013, 18:50     Проблеммы с выводом информации на монитор из файла #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream> 
 
int main() {
    std::fstream out( "filename.txt" );
    std::string temp;
    
    int i = 1;
    while( !out.eof() ) {
        out >> temp;
        std::cout << temp << " ";
        if( i % 5 == 0 ) {
            i = 0;
            std::cout << "\n";
        }
        i++;
    }
    
    return 0;
}
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
12.09.2013, 18:58     Проблеммы с выводом информации на монитор из файла #3
coloc, а когда программа при очередном чтении out >> temp; потерпит неудачу (будет достигнут конец файла), то что же будет выведено на консоль в следующей строке? )

Цитата Сообщение от coloc Посмотреть сообщение
C++
1
2
3
4
while( !out.eof() ) 
{ 
out >> temp; 
std::cout << temp << " ";
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
12.09.2013, 19:10     Проблеммы с выводом информации на монитор из файла #4
___, то есть ты имеешь ввиду если в файле например 5 строк и последняя пустая? Я точно не знаю, но думаю последнюю считанную строку, потому что fstream буферизирует все.
sdima75
1 / 1 / 0
Регистрация: 12.09.2013
Сообщений: 27
12.09.2013, 19:17  [ТС]     Проблеммы с выводом информации на монитор из файла #5
В данной теме Вынос мозга с чтением файла мы нашли решение проблемы, и всё работало, а когда я немного изменил код для того чтобы не одним столбом информацию выводить, то получилась данная "хрень"....
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
12.09.2013, 19:17     Проблеммы с выводом информации на монитор из файла #6
вот что печатает

01 04 30 25 12
08 09 14 17 35
02 10 07 22 33
33
Для продолжения нажмите любую клавишу . . .
т.е. последнее число в конце два раза выводится (33 остается в переменной temp от предыдущего чтения)
sdima75
1 / 1 / 0
Регистрация: 12.09.2013
Сообщений: 27
12.09.2013, 19:19  [ТС]     Проблеммы с выводом информации на монитор из файла #7
Цитата Сообщение от ___ Посмотреть сообщение
вот что печатает



т.е. последнее число в конце два раза выводится (33 остается в переменной temp от предыдущего чтения)
А у меня "белеберда".... я в начале темы выложил скрин....
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
12.09.2013, 19:24     Проблеммы с выводом информации на монитор из файла #8
sdima75, проще новый код написать, чем твою жуть смотреть
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
#include <iostream>
#include <fstream> 
 
int main() {
    const int w = 5;
    const int h = 3;
    int m[w][h];
    std::fstream out( "filename.txt" );
    
    for( int i = 0; i < h; i++ ) {
        for( int j = 0; j < w; j++ ) {
            out >> m[j][i];
        }
    }
    
    for( int i = 0; i < h; i++ ) {
        for( int j = 0; j < w; j++ ) {
            std::cout << m[j][i] << " ";
        }
        std::cout << "\n";
    }
    
    return 0;
}
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
12.09.2013, 19:31     Проблеммы с выводом информации на монитор из файла #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
 
int main()
{
    fstream out( "data.txt" );
    string temp;
 
    int i = 0;
    out >> temp;
    while (out)
    {
        cout << temp << " ";
        i++;
        if (i%5==0) cout << endl;
        out >> temp;
    }
 
    return 0;
}

имя файл data.txt поменяй на свое.
в это его содержимое:
01 04 30 25 12
08 09 14 17 35
02 10 07 22 33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2013, 19:34     Проблеммы с выводом информации на монитор из файла
Еще ссылки по теме:

C++ Динамическое сохранение информации из файла
Чтение информации из файла C++
C++ Вывод информации из файла

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

Или воспользуйтесь поиском по форуму:
sdima75
1 / 1 / 0
Регистрация: 12.09.2013
Сообщений: 27
12.09.2013, 19:34  [ТС]     Проблеммы с выводом информации на монитор из файла #10
Цитата Сообщение от coloc Посмотреть сообщение
sdima75, проще новый код написать, чем твою жуть смотреть
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
#include <iostream>
#include <fstream> 
 
int main() {
    const int w = 5;
    const int h = 3;
    int m[w][h];
    std::fstream out( "filename.txt" );
    
    for( int i = 0; i < h; i++ ) {
        for( int j = 0; j < w; j++ ) {
            out >> m[j][i];
        }
    }
    
    for( int i = 0; i < h; i++ ) {
        for( int j = 0; j < w; j++ ) {
            std::cout << m[j][i] << " ";
        }
        std::cout << "\n";
    }
    
    return 0;
}
Всё заработало! Большое спасибо!
Сначала в твоём коде я так понял мы создали в памяти массив и в били в него данные, а потом из данные этого массива отправили на экран...
Yandex
Объявления
12.09.2013, 19:34     Проблеммы с выводом информации на монитор из файла
Ответ Создать тему
Опции темы

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