Перейти к содержимому

Как вывести содержимое файла в консоль c

  • автор:

Вывод содержимого файла на консоль

Задача — добавление данных в файл, а после их вывод на консоль. Однако при выполнении функции showGroup() выводится только строка «Information». В чём проблема?

Отслеживать
Sergei Mikhailovskii
задан 25 ноя 2017 в 18:19
Sergei Mikhailovskii Sergei Mikhailovskii
509 2 2 золотых знака 6 6 серебряных знаков 20 20 бронзовых знаков

Что-то у вас не то. Создаете файл через fopen , а пишете не пойми куда (что такое file1 ??) как file1
25 ноя 2017 в 18:34
Harry, извиняюсь, не до конца скопировал. Добавил часть кода
25 ноя 2017 в 18:56
А в файле случайно не кириллические символы?
25 ноя 2017 в 19:31

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Попробовал запустить у себя ваш код.

ofstream file1("list.txt"); ifstream fin("list.txt"); 

Вы пытаетесь дважды открыть один и тот же файл, отсюда и ошибка. Если убрать создание file1, то ваш код выводит содержимое файла. Еще вызывает вопрос вот эта строчка:

f1 = fopen("list.txt", "rb"); 

На работоспособность она не повлияла, но непонятен смысл создания f1, когда вы его не используете. Если хотите в одной функции проводить и чтение и запись, то вам придется делать это по очереди.

Как вывести содержимое файла Linux? Открываем текстовый файл в Linux

Если вы работаете с операционной системой Linux, вы должны уметь быстро и правильно просматривать содержимое Linux-файлов, используя терминал. В этой статье мы изучим команды, посредством которых можно открывать текстовые файлы Linux. И поговорим о том, как следует ими пользоваться.

Просмотр текстового файла в Linux полностью

Чтобы вывести содержимое всего текстового файла, в Linux используют команду cat. Она отлично походит для вывода небольших текстовых файлов, к примеру, конфигурационных файлов. Синтаксис прост:

 
cat [опции] 

Представьте, что надо посмотреть содержимое файла с названием myfile.txt:

 
cat myfile.txt

Также можно вместо имени прописать адрес (путь) к файлу:

 
cat /etc/passwd

Если нужно посмотреть несколько файлов сразу, это тоже не вызовет проблем:

terminal_linux_16_1-20219-fd57a5.png

Кроме того, при просмотре текстового файла в Linux мы можем отобразить номера строк. Для этого потребуется всего лишь использовать опцию -n :

 
cat -n file.txt

terminal_linux_17_1-20219-bc46ed.png

Команда nl функционирует аналогично команде cat с опцией -n , выводя номера строк в столбце слева.

 
nl file.txt

При необходимости вы можете сделать так, чтобы при выводе текстового файла в конце каждой строки отображался символ $ :

 
cat -e test

Вывод будет следующим:

 
hello everyone, how do you do?$ $ Hey, am fine.$

Кроме cat, для вывода содержимого текстового файла в Linux используется команда tac. Её разница заключается в том, что она выводит содержимое файла в обратном порядке.

terminal_linux_21_1-20219-6bcb32.png

Как просмотреть файл в Linux с прокруткой

Бывает, что текстовый файл большой, поэтому его содержимое не помещается в один экран. Использовать в таком случае cat неудобно, зато есть less. Синтаксис у неё такой же:

 
less 

Команда less обеспечит постраничный просмотр, что очень удобно. При этом: 1) less позволяет просматривать текст по определённому числу строк, для чего достаточно указать - (тире или минус) и количество строк:

 
less -5 myfile.txt

2) можно начать просмотр с конкретной строки в файле, указав + (плюс) и номер строки, с которой хотим начать чтение:

 
less +5 myfile.txt

Открыв текст, мы можем управлять его просмотром:

1-20219-f917a7.png

Просматриваем начало или конец файла в Linux

Порой, нам не нужно выводить содержимое всего файла и мы хотим, к примеру, посмотреть лишь несколько строчек лога. Такое часто бывает, если мы подозреваем, что в начале или в конце конфигурационного файла есть ошибки. Для решения данного вопроса у нас существуют команды head и tail (как вы уже догадались, это голова и хвост).

Команда head по умолчанию показывает лишь 10 первых строчек в текстовом файле в Linux:

 
head /etc/passwd

Вот, что мы увидим:

 
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/bin/false daemon:x:2:2:daemon:/sbin:/bin/false adm:x:3:4:adm:/var/adm:/bin/false lp:x:4:7:lp:/var/spool/lpd:/bin/false sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt news:x:9:13:news:/var/spool/news:/bin/false uucp:x:10:14:uucp:/var/spool/uucp:/bin/false

Кстати, тут мы тоже можем открыть сразу несколько текстовых файлов в Linux одновременно. Вот просмотр сразу двух файлов:

 
head /etc/passwd /etc/shadow

Если же вас не интересуют все 10 строчек, то, как и в случае с cat, можно использовать опцию –n , цифрой указывая число строк к выводу:

 
head -n5 /var/log/emerge.log

В итоге мы вывели только пять строк:

 
1394924012: Started emerge on: Mar 15, 2014 22:53:31 1394924012: *** emerge --sync 1394924012: === sync 1394924012: >>> Synchronization of repository 'gentoo' located in '/usr/portage'. 1394924027: >>> Starting rsync with rsync://212.113.35.39/gentoo-portage

По правде говоря, букву n можно и не использовать, достаточно просто передать цифру:

 
head -5 /var/log/emerge.log

Кстати, выводить содержимое текстового файла в Linux можно не построчно, а посимвольно. Давайте зададим число символов, которое нужно вывести (используем опцию -с ):

 
head -c45 /var/log/emerge.log

Итак, выводим 45 символов:

 
1394924012: Started emerge on: Mar 15, 2014 2

Не верите, что их действительно 45? Проверить можно командой wc:

 
head -c45 /var/log/emerge.log | wc -c 45

С «головой» разобрались, давайте поговорим про «хвост». Очевидно, что команда tail работает наоборот, выводя десять последних строк текстового Linux-файла:

 
tail /var/log/emerge.log

Количество строк при выводе тоже можно менять. Однако в tail есть такая полезная опция, как -f . С её помощью содержимое текстового файла будет постоянно обновляться, в результате чего вы станете видеть изменения сразу (постоянно открывать и закрывать файл не придётся). Это весьма удобно, если вы хотите просматривать логи Linux в реальном времени:

 
tail -f /var/log/emerge.log

Просматриваем содержимое файла по шаблону в Linux

На практике зачастую нам необходим не весь текстовый файл, а лишь несколько строк из него. Используя grep, мы можем вывести Linux-файл, предварительно отсеяв лишнее:

 
grep опции шаблон файл

Команду можно применять и совместно с cat:

 
cat файл | grep опции шаблон

Давайте выведем из лога лишь предупреждения:

 
cat /var/log/Xorg.0.log | grep WW
 
(WW) warning, (EE) error, (NI) not implemented, (??) unknown. [ 85.839] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled. [ 85.839] (WW) Disabling Keyboard0 [ 85.839] (WW) Disabling Mouse0 [ 87.395] (WW) evdev: A4TECH USB Device: ignoring absolute axes.

Есть и ряд полезных опций: -A , -B , -C . Допустим, нам надо выполнить вывод двух строк после вхождения enp2s0:

 
$ ifconfig | grep -A2 enp2s0

enp2s0: flags=4163 mtu 1500 inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::beae:c5ff:febe:8bb7 prefixlen 64 scopeid 0x20

А теперь, то же самое, но до вхождения loop:

 
ifconfig | grep -B2 loop
 
inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback)

Можно по две строки как до, так и после loop:

 
ifconfig | grep -C2 loop
 
inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback) RX packets 9810 bytes 579497 (565.9 KiB) RX errors 0 dropped 0 overruns 0 frame

Просматриваем Linux-файл в сжатом виде

Порой, в системе встречаются текстовые файлы в сжатом виде и формате gz. Это могут быть конфигурационные файлы ядра либо логи программ. Открыть такие файлы можно тоже через терминал, не прибегая к распаковке. Для этого существует множество аналогов вышеназванных утилит с той лишь разницей, что они имеют приставку z: zgerp, zegrep, zcat, zless.

Давайте откроем сжатый файл в Linux для просмотра:

 
zcat test.gz

Или выполним просмотр сжатого файла с прокруткой:

 
zless test

Вот, пожалуй, и всё. Теперь вы точно в курсе, как правильно открывать и просматривать текстовые файлы в терминале Linux.

Вывод содержимого файла в консоль

Всех приветствую! Никак не могу понять, каким образом вывести все содержимое файла в консоль. Действо должно происходить в функции print_file.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#pragma once #include #include #include using namespace std; int make_file(const char* f_first)  fstream stream(f_first, ios::out  void print_file(const char* f_first) { fstream stream(f_first, ios::out); if (!stream) { cout  "Невозможно прочитать файл!\n"; } //stream.close(); }

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

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

Вывод содержимого структуры COMMPROP на консоль
. доброго времени суток, уважаемые форумчане. не могу понять как вывести содержимое структуры.

Выделение памяти и вывод её содержимого на печать в консоль
Здравствуйте, форумчане. Не подскажите, как в С++ выделить 1 кБайт памяти одним куском и вывести.

2419 / 1039 / 371
Регистрация: 01.06.2021
Сообщений: 3,708

Лучший ответ

Сообщение было отмечено Salazar_1996 как решение

Решение

1 2 3 4 5 6 7 8 9 10 11 12
void print_file() { string text, path; cout  "Enter a path to a text file:\n"; getline(cin, path); ifstream f(path); if (f.is_open()) getline(f, text, '\f'); else cout  "INVALID FILE PATH"; cout  text; }

Эксперт С++

13663 / 10580 / 6322
Регистрация: 18.12.2011
Сообщений: 28,247

1 2 3 4 5 6 7 8 9 10 11 12
void print_file(const char* f) { ifstream f(path); if (f) { char c; while(f.get(c) ) cout.put(c); f.close(); }else cout  "INVALID FILE PATH"; }

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Реализовать поиск файла в каталоге и вывод на консоль заданных атрибутов найденного файла
Приведите, пожалуйста, пример кода программы, которая ищет файлы, находящиеся в каталоге, и выдаёт.

Вывод содержимого файла
Есть программа, вот код: #include <iostream> #include <fstream> using namespace std; struct.

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

Некорректный вывод содержимого из файла
Слова вроде переносит. но на выводе элементов (ну по тексту смотреть, если. Элементы списка. ).

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

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

Вывод содержимого файла построчно
Требуется вывести содержимое файла на экран. Но так, чтоб это выполнялось с каждой строкой.

Вывод содержимого файла

У меня вот такой вопрос. Как ссылаясь на путь файла вывести его содержимое на экран . И если так можно, то какие типы файлом могут послужить для данной операции?

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Вывод содержимого файла
Как вывести содержимое текстового файла на экран printf("%s",name); Выводит только первый символ.

Пропуск чтения пустого файла docx (и вывод полного содержимого файла)
Добрый день! Данный кусок кода при чтении пустого файла docx выдает ошибку – «…"Package not found.

Вывод содержимого файла
Как можно вывести в командную строку 10 последних строк текстового файла?

Вывод содержимого файла
Здравствуйте, уважаемые форумчане. У меня задача вывести содержимое текстового файла на экран. Я.

6277 / 3562 / 898
Регистрация: 28.10.2010
Сообщений: 5,926

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
#ifdef _MSC_VER #define _CRT_SECURE_NO_WARNINGS #endif #include #include void cat(const char* filename) { int ch; FILE *file = fopen(filename, "r"); while (!feof(file) && !ferror(file)) { ch = getc(file); if (ch != EOF) { putchar(ch); } } putchar('\n'); } int main() { cat("1.txt"); return EXIT_SUCCESS; }

Регистрация: 22.09.2013
Сообщений: 166

В целом всё понятно кроме
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
Для чего это пишут? Не дошел еще до этого раздела.
__________________________________________________
Можно использовать код одной функцией?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#ifdef _MSC_VER #define _CRT_SECURE_NO_WARNINGS #endif #include #include void main() { int ch; FILE *file = fopen("C:\Windows\CSUP.txt", "r"); while (!feof(file) && !ferror(file)) { ch = getc(file); if (ch != EOF) { putchar(ch); } } putchar('\n'); }

6277 / 3562 / 898
Регистрация: 28.10.2010
Сообщений: 5,926

кверти, да это Visual Studio просит заменить вызов некоторых функций на свои. Если у вас не VS, то можете убрать эти строчки.

Регистрация: 22.09.2013
Сообщений: 166
При компиляции ошибок нет , но по ходу выполнения выскакивает:
6277 / 3562 / 898
Регистрация: 28.10.2010
Сообщений: 5,926

Лучший ответ

Сообщение было отмечено кверти как решение

Решение

кверти, проверьте, что при открытии файла он не NULL, т.е.

file != NULL

Вероятнее всего, он не открылся.
Заблокирован

ЦитатаСообщение от кверти Посмотреть сообщение

C:\Windows\CSUP.txt
слэши экоанировать надо
313 / 230 / 94
Регистрация: 12.05.2021
Сообщений: 1,320

А можно сделать так,что бы выводилась информация на русском языке?У меня при попытке вывести на русском, программа выводит непонятные символы.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Вывод содержимого файла
Есть программа, вот код: #include <iostream> #include <fstream> using namespace std; struct.

Вывод содержимого файла в TextBox
Всем доброго дня! У меня есть textBox в который необходимо ввести путь файла а потом этот файл.

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

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

Чтение и вывод содержимого файла
Мне надо вывести содержимое файла. ; You may customize this and other start-up templates; ;.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *