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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.84
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
#1

Вывод содержимого текстового файла на экран - C++

25.08.2011, 14:35. Просмотров 3378. Ответов 21
Метки нет (Все метки)

Нужно написать программу чтоб выводила содержимое текстового файла на экран, желательно по строчно после каждого нажатия ентер, ну или хотя бы чтоб просто выводило,кто поможет заранее благодарен, особенно если будут комментрии в программе с пояснением.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma argsused
# include <iostream>              // класс для работы с вводом-выводом
# include <fstream>
#include <conio.h>        // класс для работы с файлом
# include <string>            // класс для работы со строками
//-------------------Код программы для первой задачи----------
void main()
{
    using namespace std;
    string st,stt;
    cout << "enter name files:" <<endl;
    char name[10];
    cin >> name;
    ifstream inf(name);
    getline(inf,st);
    int i = 0, f = 1;
    for(i=0; i < st.length(); i++)
            stt +=st[i];
    cout << stt;
    getch ();
вот так получилось но считывает только первую строку нижние дальше не выводит как дописать надо чтоб все выводило строки?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2011, 14:35     Вывод содержимого текстового файла на экран
Посмотрите здесь:
Вывод на экран содержимого файла C++
C++ Вывод содержимого файла на экран
C++ Ввод и вывод содержимого файла на экран
C++ Чтение файла и вывод его содержимого на экран
C++ Вывод на экран данные из текстового файла
Построчный вывод текстового файла на экран C++
C++ Не могу разобраться. Чтение и вывод на экран всего содержимого файла .txt на консоль
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
26.08.2011, 13:46     Вывод содержимого текстового файла на экран #16
Цитата Сообщение от Jupiter Посмотреть сообщение
конец файла может встретится раньше чем '\n'
- можешь пояснить?
в reference eof написано что проверяет поток на достижение его конца, погуглив нашёл что единственный моент косой работы eof когда в текстовом режиме бинарник открываем и встречаем -1. Какое отношение к этому имеет символ перевода на другую строку не пойму...
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.08.2011, 13:51     Вывод содержимого текстового файла на экран #17
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Какое отношение к этому имеет символ перевода на другую строку не пойму...
по умолчанию getline читает до '\n' которого в строке может не быть
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.08.2011, 13:52     Вывод содержимого текстового файла на экран #18
Цитата Сообщение от Jupiter Посмотреть сообщение
конец файла может встретится раньше чем '\n'
Наверное вы имели ввиду то, что если произвольных файл открыть как текстовый, то конец файла в текстовом формате (символ с кодом 26) может наступить совершенно неожиданно.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
26.08.2011, 13:57     Вывод содержимого текстового файла на экран #19
Цитата Сообщение от grizlik78 Посмотреть сообщение
В этой такой проблемы нет:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int main()
{
    int d;
    while ( std::cin >> d )
    {
        std::cout << "d = " << d << std::endl;
    }
    if (!std::cin.eof())
    {
        std::cout << "Input error" << std::endl;
    }
    return 0;
}
Как я понимаю, оператор >> возвращает std::cin, к которому применяется operator void*, который в свою очередь возвращает NULL только если установленны failbit или badbit, но не eofbit.
http://www.cplusplus.com/reference/i...erator_voidpt/
Тогда почему если вводим EOF цикл завершается?
grizlik78
Эксперт С++
1908 / 1440 / 110
Регистрация: 29.05.2011
Сообщений: 2,995
26.08.2011, 13:58     Вывод содержимого текстового файла на экран #20
Про текстовые файлы и чтение строк.
Пусть у нас есть текстовый файл, в котором записано 2 строки.
Вот эта программа может вывести 2 или 3 строки, в зависимости от того, заканчивается ли вторая строка символом перевода строки или нет. Если заканчивается, то будет выведена третья, пустая, строка.
C++
1
2
3
4
5
while ( !in.eof() )
{
    getline(in, str);
    cout << "line: " << str << std::endl;
}
Эта программа в обоих случаях выведет 2 строки.
C++
1
2
3
4
while ( getline(in, str) )
{
    cout << "line: " << str << std::endl;
}
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.08.2011, 14:00     Вывод содержимого текстового файла на экран #21
Цитата Сообщение от grizlik78 Посмотреть сообщение
Про текстовые файлы...
Думаю не для кого не секрет, что вторая конструкция лучше первой во всех планах.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2011, 14:00     Вывод содержимого текстового файла на экран
Еще ссылки по теме:
Проверка содержимого текстового файла C++
Проверка содержимого текстового файла C++
Копирование содержимого текстового файла C++
Отправка содержимого текстового файла на почту C++
Копирование содержимого одного текстового файла в другой C++

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

Или воспользуйтесь поиском по форуму:
grizlik78
Эксперт С++
1908 / 1440 / 110
Регистрация: 29.05.2011
Сообщений: 2,995
26.08.2011, 14:00     Вывод содержимого текстового файла на экран #22
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
Тогда почему если вводим EOF цикл завершается?
Потому, что если очередное считывание завершилось неудачей, то флаг ошибки тоже устанавливается, то есть std::cin.fail() тоже вернёт true
Yandex
Объявления
26.08.2011, 14:00     Вывод содержимого текстового файла на экран
Ответ Создать тему
Опции темы

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