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

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

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

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

25.08.2011, 14:35. Просмотров 3600. Ответов 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 ();
вот так получилось но считывает только первую строку нижние дальше не выводит как дописать надо чтоб все выводило строки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2011, 14:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод содержимого текстового файла на экран (C++):

Вывод на экран содержимого файла - C++
Напишите программу, которая выводит на экран содержимое файла A:\numbers.txt. За ранние спасибо!

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

Ввод и вывод содержимого файла на экран - C++
#include&lt;iostream&gt; #include&lt;fstream&gt; using namespace std; int main() { ofstream file; file.open(&quot;file1.dat&quot;);//создал...

Чтение файла и вывод его содержимого на экран - C++
помогите разобраться с чтением файла и выводом его содержимого на экран... а то что ни как не получается... запутался... :wall:

Вывод на экран данные из текстового файла - C++
Создайте текстовый файл целых чисел (значения вводятся с клавиатуры). Проанализировав в программе созданный файл, создайте еще 2 файла: ...

Построчный вывод текстового файла на экран - C++
нужно организовать построчный вывод файла на экран пока остановился на данном способе, так как по крайней мере он понятен, с getline и...

21
-=ЮрА=-
Заблокирован
Автор FAQ
25.08.2011, 14:54 #2
Цитата Сообщение от lexflax Посмотреть сообщение
Нужно написать программу чтоб выводила содержимое текстового файла на экран
Доработал твой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# include <iostream>     // ГЄГ«Г*Г±Г± äëÿ Г°Г*áîòû Г± ââîäîì-âûâîäîì
# include <fstream>
#include <conio.h>   // ГЄГ«Г*Г±Г± äëÿ Г°Г*áîòû Г± ГґГ*éëîì
# include <string>   // ГЄГ«Г*Г±Г± äëÿ Г°Г*áîòû Г±Г® ñòðîêГ*ìè
//-------------------Êîä ïðîãðГ*ììû äëÿ ïåðâîé Г§Г*Г¤Г*Г·ГЁ----------
void main()
{
    using namespace std;
    string st,stt;
    cout << "enter name files: ";
    char name[10];
    cin >> name;
    ifstream inf(name);
    int i = 0;
    while(!inf.eof())
    {
        getline(inf,st);
        for(i=0; i < st.length(); i++)
            stt +=st[i];
        cout << st <<"\r\n";
        getch ();
    }
}
Добавлено через 1 минуту
Весь твой недочёт был, что читал из файла лишь 1-раз
Цитата Сообщение от lexflax Посмотреть сообщение
ifstream inf(name);
getline(inf,st);
а нужно в цикле чиать до конца файла

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(!inf.eof())
* * * * {
* * * * * * * * getline(inf,st);
1
Jupiter
Каратель
Эксперт С++
6565 / 3986 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
25.08.2011, 14:54 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <string>
#include <fstream>
#include <iostream>
 
int main()
{
    std::ifstream inf("1.txt");
    std::string str;
    while (inf.eof() == false)
    {
        std::getline(inf, str);
        std::cout << str;
        std::getchar();
    }
 
    return 0;
}
1
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.08.2011, 14:57 #4
C++
1
std::cout << std::fstream("input.txt").rdbuf();
0
-=ЮрА=-
Заблокирован
Автор FAQ
25.08.2011, 14:58 #5
Цитата Сообщение от Jupiter Посмотреть сообщение
C++
1
2
std::string str;
* * while (inf.eof() == false)
чем эта конструкция от моей отличается???

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
C++
1
2
3
while(!inf.eof())
* * * * {
* * * * * * * * getline(inf,st);
0
Jupiter
Каратель
Эксперт С++
6565 / 3986 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
25.08.2011, 14:59 #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
чем эта конструкция от моей отличается???
ничем но у вас осталось от ТС
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
# include <iostream> // класс для работы с вводом-выводом
# include <fstream>
#include <conio.h> // класс для работы с файлом
# include <string> // класс для работы со строками
//-------------------Код программы для первой задачи----------
void main()
что не есть правильно
0
-=ЮрА=-
Заблокирован
Автор FAQ
25.08.2011, 15:06 #7
Цитата Сообщение от Jupiter Посмотреть сообщение
но у вас осталось от ТС
- я всего лишь код ТС доработал, в коменты не вчитывался

Цитата Сообщение от lexflax Посмотреть сообщение
#include <conio.h> // класс для работы с файлом
- lexflax, посмотри тут http://ru.wikipedia.org/wiki/Conio.h
0
lexflax
11 / 11 / 1
Регистрация: 03.04.2011
Сообщений: 627
26.08.2011, 13:11  [ТС] #8
while (inf.eof()) что означает eof???
0
grizlik78
Эксперт С++
1974 / 1467 / 122
Регистрация: 29.05.2011
Сообщений: 3,037
26.08.2011, 13:18 #9
Цитата Сообщение от lexflax Посмотреть сообщение
while (inf.eof()) что означает eof???
Это функция, которая возвращает true, если достигнут конец потока. Такое использование (в заголовке цикла while) почти всегда означает ошибку в логике программы.

Добавлено через 1 минуту
Я имею в виду и эти варианты тоже
C++
1
while (inf.eof() == false)
C++
1
while (!inf.eof())
0
lexflax
11 / 11 / 1
Регистрация: 03.04.2011
Сообщений: 627
26.08.2011, 13:21  [ТС] #10
Цитата Сообщение от grizlik78 Посмотреть сообщение
Это функция, которая возвращает true, если достигнут конец потока. Такое использование (в заголовке цикла while) почти всегда означает ошибку в логике программы.

Добавлено через 1 минуту
Я имею в виду и эти варианты тоже
C++
1
while (inf.eof() == false)
а почему вот эти означают ошибку в логике?
C++
1
while (!inf.eof())
а почему вот эти означают ошибку в логике?
0
grizlik78
Эксперт С++
1974 / 1467 / 122
Регистрация: 29.05.2011
Сообщений: 3,037
26.08.2011, 13:23 #11
Не обязательно означают. Но чаще всего так и есть.
Потому, что надо проверять успешность операции чтения, а не достижение конца файла. Эту функцию можно вызвать чтобы убедиться, что файл закончился, а не для завершения цикла.
1
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
26.08.2011, 13:30 #12
grizlik78, тогда как бы вы в данном случае написали заголовок цикла while ?
0
-=ЮрА=-
Заблокирован
Автор FAQ
26.08.2011, 13:35 #13
Цитата Сообщение от lexflax Посмотреть сообщение
а почему вот эти означают ошибку в логике?
об ошибке в какой логике ты говоришь?Функция eof возвращает 1 если достигнут конец файла и 0 если конец ещё не достигнут 1 - эквивалентна true 0 - false
0
Jupiter
Каратель
Эксперт С++
6565 / 3986 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.08.2011, 13:38 #14
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
об ошибке в какой логике ты говоришь?Функция eof возвращает 1 если достигнут конец файла и 0 если конец ещё не достигнут 1 - эквивалентна true 0 - false
конец файла может встретится раньше чем '\n'
0
grizlik78
Эксперт С++
1974 / 1467 / 122
Регистрация: 29.05.2011
Сообщений: 3,037
26.08.2011, 13:39 #15
Net_Wanderer, ну, например так
C++
1
while (std::getline(inf, str))
Но для строк это не так актуально, как, например, для чтения целых чисел из текстового потока.

Например, в этой программе легко получить бесконечный цикл. достаточно ввести букву.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
    int d;
    while (!std::cin.eof())
    {
        std::cin >> d;
        std::cout << "d = " << d << std::endl;
    }
    return 0;
}
В этой такой проблемы нет:
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;
}
1
26.08.2011, 13:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2011, 13:39
Привет! Вот еще темы с ответами:

Не могу разобраться. Чтение и вывод на экран всего содержимого файла .txt на консоль - C++
#include &lt;cstdio&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; using namespace std; void main() { ...

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

Проверка содержимого текстового файла - C++
Помоги проверить содержимое файла на числа !Сделал вот как я думаюbool lch(string FN) { ifstream F1(FN, ios::in); char ch; ...

Проверка содержимого текстового файла - C++
Помогите пожалуйста сделать проверку содержимого текстового файла. Если там есть хотя бы одна не цифра -выдать ошибку , если все цифры...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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