Вывод содержимого файла на консоль
Задача — добавление данных в файл, а после их вывод на консоль. Однако при выполнении функции 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Если нужно посмотреть несколько файлов сразу, это тоже не вызовет проблем:
Кроме того, при просмотре текстового файла в Linux мы можем отобразить номера строк. Для этого потребуется всего лишь использовать опцию -n :
cat -n file.txt
Команда nl функционирует аналогично команде cat с опцией -n , выводя номера строк в столбце слева.
nl file.txtПри необходимости вы можете сделать так, чтобы при выводе текстового файла в конце каждой строки отображался символ $ :
cat -e testВывод будет следующим:
hello everyone, how do you do?$ $ Hey, am fine.$Кроме cat, для вывода содержимого текстового файла в Linux используется команда tac. Её разница заключается в том, что она выводит содержимое файла в обратном порядке.
Как просмотреть файл в Linux с прокруткой
Бывает, что текстовый файл большой, поэтому его содержимое не помещается в один экран. Использовать в таком случае cat неудобно, зато есть less. Синтаксис у неё такой же:
lessКоманда less обеспечит постраничный просмотр, что очень удобно. При этом: 1) less позволяет просматривать текст по определённому числу строк, для чего достаточно указать - (тире или минус) и количество строк:
less -5 myfile.txt2) можно начать просмотр с конкретной строки в файле, указав + (плюс) и номер строки, с которой хотим начать чтение:
less +5 myfile.txtОткрыв текст, мы можем управлять его просмотром:
Просматриваем начало или конец файла в 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 enp2s0enp2s0: 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 loopinet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback)Можно по две строки как до, так и после loop:
ifconfig | grep -C2 loopinet 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 12void 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,2471 2 3 4 5 6 7 8 9 10 11 12void 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,9261 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. За ранние.





