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

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

Войти
Регистрация
Восстановить пароль
 
sdima75
1 / 1 / 0
Регистрация: 12.09.2013
Сообщений: 27
#1

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

12.09.2013, 18:42. Просмотров 284. Ответов 9
Метки нет (Все метки)

Задача.

Из файла (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();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2013, 18:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблеммы с выводом информации на монитор из файла (C++):

Неразбериха с выводом данных из файла - C++
Программа 1 #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { ...

Что-то не то с выводом сохранённых данных из бинарного файла - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; using namespace std; FILE...

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

Считывание из бинарного файла в структуру с последующим выводом - C++
В бинарном файле храниться инфа: Имя_пользователя дата_подключения номер Имя_пользователя дата_подключения номер и т.д. Есть...

Проблема с выводом картинки на монитор - Видеокарты
У меня сложилась следующая проблема: при включении компьютера изображение на монитор не поступает. Сам системный блок вроде как работает -...

Работа с выводом информации на экран - C++ WinAPI
Здравствуйте! Как сделать так, чтобы при изменении или переносе окна содержимое не пропадало, и не прорисовывалось вновь. WP_PAINT...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
coloc
погромист
410 / 246 / 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;
}
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 << " ";
0
coloc
погромист
410 / 246 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
12.09.2013, 19:10 #4
___, то есть ты имеешь ввиду если в файле например 5 строк и последняя пустая? Я точно не знаю, но думаю последнюю считанную строку, потому что fstream буферизирует все.
0
sdima75
1 / 1 / 0
Регистрация: 12.09.2013
Сообщений: 27
12.09.2013, 19:17  [ТС] #5
В данной теме Вынос мозга с чтением файла мы нашли решение проблемы, и всё работало, а когда я немного изменил код для того чтобы не одним столбом информацию выводить, то получилась данная "хрень"....
0
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 от предыдущего чтения)
0
sdima75
1 / 1 / 0
Регистрация: 12.09.2013
Сообщений: 27
12.09.2013, 19:19  [ТС] #7
Цитата Сообщение от ___ Посмотреть сообщение
вот что печатает



т.е. последнее число в конце два раза выводится (33 остается в переменной temp от предыдущего чтения)
А у меня "белеберда".... я в начале темы выложил скрин....
0
coloc
погромист
410 / 246 / 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;
}
1
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
1
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;
}
Всё заработало! Большое спасибо!
Сначала в твоём коде я так понял мы создали в памяти массив и в били в него данные, а потом из данные этого массива отправили на экран...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2013, 19:34
Привет! Вот еще темы с ответами:

Батник с выводом информации в файл - CMD/BAT
Добрый день! Подскажите, пожалуйста, в чем ошибка? Батник собирает информацию о наличии какой-нибудь программы в program files (на...

Программа с вводом и выводом информации - Turbo Pascal
В любом банкомате в любой момент времени есть купюры различных достоинств, каждое достоинство представлено некоторым количеством купюр....

Выполнение циклических алгоритмов и программ с орматированным выводом на монитор по дисциплине - Pascal ABC
Здравствуйте! у меня тут проблема с этой программой,ни как не могу решить. Вот ссылка на программу Заранее большое СПАСИБО!!!

Проблема с выводом информации в консольное окно. - Visual Basic
у меня встала проблема с выводом информации в консольное окно. Как создавать и как работать с кончольными приложениями все понятно, но я,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.09.2013, 19:34
Ответ Создать тему
Опции темы

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