Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2009, 13:05   #1
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,619
Восклицание <fstream> <iomanip> <ios> <iostream>. Краткое описание ввода/вывода

//---------------------------------------------------------------------------------
<fstream>
В этом файле определены классы для потокового ввода/вывода при работе с файлами.
Наиболее часто использующиеся типы:
------------------Для работы с ANSI-строками (char)---------------------
-fstream - обощенный поток ввода/вывода в файл
-ofstream - поток записи в файл
-ifstream - поток чтения из файла
------------------Для работы с UNICODE-строками (wchar_t)---------------
-wfstream - обощенный поток ввода/вывода в файл
-wofstream - поток записи в файл
-wifstream - поток чтения из файла
---------------------------Пример кода----------------------------------
Код:
#include <iostream>
#include <fstream>

int main()
{
	std::ofstream out;
	out.open( "File.txt", std::ios_base::out | std::ios_base::trunc );
	for(int i=0; i<=20; i++)
	{
		out<<i;
	}
	out.close();
	return 0;
}
//---------------------------------------------------------------------------------
<iomanip>
В этом файле определены некоторые манипуляторы потокового ввода/вывода.
Список самых популярных манипуляторов:
-----------------------------------------------------------------------------------
-std::setprecision - задает количество знаков после запятой в при выводе чисел с плавающей точкой
-std::setw(setwidth) - задает ширину поля вывода (как и std::setprecision - только работает не только с числами)
-std::setfill - задает символ, которым будут заполнятся пробелы в выводимом тексте
-std::setbase - задает систему счисления в которой будет выводиться число
---------------------------Пример кода----------------------------------
Код:
#include <iostream>
#include <iomanip>

int main()
{
	float flDigit = 1.0;
	int digit = 15;
	char *str = "This is manipulator\n";
	std::cout<<"Floating point "<<std::fixed<<std::setprecision(4)<<flDigit<<std::endl;
	std::cout<<std::setfill('#')<<str<<std::endl;
	std::cout<<std::setbase(8)<<digit<<std::endl
	         <<std::setbase(10)<<digit<<std::endl
                 <<std::setbase(16)<<digit<<std::endl;
	return 0;
}
//---------------------------------------------------------------------------------
<ios>
В этом файле определены манипуляторы потокового ввода/вывода. Этот файл подключается внутри остальных(например <iomanip>), нет необходимости подключать его вручную.
Список манипуляторов:
----------------------------------------------------------------------------
-std:: oct - аналогично std::setbase(8) - вывод в восьмеричной системе счисления
-std:: dec - аналогично std::setbase(10) - вывод в десятеричной системе счисления
-std::hex - аналогично std::setbase(16) - вывод в шеснадцатеричной системе счисления
-std::left - выравнивание выводимого текста по левому краю
-std::right - выравнивание выводимого текста по правому краю
-std::fixed - выводит число с плавающей точкой, как число с фиксированной точкой
---------------------------Пример кода----------------------------------
Код:
#include <iostream>	//подключает <ios>

int main()
{
	int digit = 15;
	float fl = 12.03;
	std::cout<<std::oct<<digit<<std::endl
		 <<std::dec<<digit<<std::endl
	         <<std::hex<<digit<<std::endl;
        std::cout<<std::right<<std::fixed<<fl<<std::endl;
	return 0;
}
//---------------------------------------------------------------------------------
<iostream>
В этом файле определены классы для потокового ввода/вывода.
Наиболее часто использующиеся типы:
------------------Для работы с ANSI-строками (char)---------------------
-cin - объект стандартного потока ввода (класс basic_istream)
-cout - объект стандартного потока вывода (класс basic_ostream)
-cerr - объект стандартного потока ошибок (класс basic_ostream)
-clog - объект стандартного потока ошибок (класс basic_ostream)
------------------Для работы с UNICODE-строками (wchar_t)---------------
-wcin - объект стандартного потока ввода (класс basic_istream)
-wcout - объект стандартного потока вывода (класс basic_ostream)
-wcerr - объект стандартного потока ошибок (класс basic_ostream)
-wclog - объект стандартного потока ошибок (класс basic_ostream)
---------------------------Пример кода----------------------------------
Код:
#include <iostream>

int main()
{
	int number;
	std::cout<<"Enter a number\n";
	std::cin>>number;
	std::cout<<"You entered "<<number<<std::endl;
	std::cerr<<"Test an error message";
	std::clog<<"Test an log message";
	return 0;
}
//---------------------------------------------------------------------------------

Последний раз редактировалось Alex11223; 21.12.2016 в 18:51.
MaTBeu вне форума Ответить с цитированием
Старый 05.03.2010, 07:44   #2
Astronaft
Новичок
Джуниор
 
Регистрация: 16.02.2010
Сообщений: 2
По умолчанию

Очень полезная кстати информация. ОЧЕНЬ кратко, но пригодиться может всегда)
Astronaft вне форума Ответить с цитированием
Старый 05.03.2010, 22:28   #3
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Знал это, новичкам (особенно студентам) будет полезно, прикрепи тему
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Старый 06.03.2010, 11:12   #4
Matr1x
Студент
Пользователь
 
Аватар для Matr1x
 
Регистрация: 10.11.2009
Сообщений: 49
По умолчанию

автору респект ) очень полезно, многое не знал )
Matr1x вне форума Ответить с цитированием
Старый 10.01.2015, 13:41   #5
Nitrax
Новичок
Джуниор
 
Аватар для Nitrax
 
Регистрация: 06.01.2015
Сообщений: 1
По умолчанию

Спасибо! Очень нужная информация.
Nitrax вне форума Ответить с цитированием
Старый 29.08.2015, 18:37   #6
Xoce05
Новичок
Джуниор
 
Регистрация: 29.08.2015
Сообщений: 9
По умолчанию

так мало? я думал в каждом файле огромное количество различных классов и манипуляторов. кстати как глянуть полный список команд в подключаемой директиве?
Xoce05 вне форума Ответить с цитированием
Старый 29.08.2015, 20:20   #7
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от Xoce05 Посмотреть сообщение
так мало? я думал в каждом файле огромное количество различных классов и манипуляторов.
Здесь краткое описание.

Цитата:
Сообщение от Xoce05 Посмотреть сообщение
кстати как глянуть полный список команд в подключаемой директиве?
эм... что?
Croessmah вне форума Ответить с цитированием
Старый 29.08.2015, 20:27   #8
Xoce05
Новичок
Джуниор
 
Регистрация: 29.08.2015
Сообщений: 9
По умолчанию

полный список, например, в <fstream> ну или любой другой библиотеке
Xoce05 вне форума Ответить с цитированием
Старый 07.03.2024, 14:59   #9
Iskatel S
Пользователь
 
Регистрация: 16.06.2012
Сообщений: 32
По умолчанию

А что произойдёт, если при выполнении std::cin>>number введётся строка, а number достустим имеет тип double?
Iskatel S вне форума Ответить с цитированием
Старый 08.03.2024, 11:01   #10
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 942
По умолчанию

Iskatel S, в переменную запишется 0. , а строка останется во входном потоке. У объекта потока выставится флаг ошибки
Алексей1153 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операции ввода-вывода а СИ dannae Помощь студентам 0 19.12.2013 22:11
с++ Операторы ввода,вывода _yaroslav_ Общие вопросы C/C++ 0 29.04.2013 02:26
Написать рекурсивную процедуру для ввода с клавиатуры последовательности чи-сел (конец ввода – 0) и вывода её на экран в обратном netiv Паскаль, Turbo Pascal, PascalABC.NET 1 17.02.2012 18:14
переопределение ввода и вывода в С++ blackbanny Помощь студентам 12 03.05.2010 13:08
система ввода вывода StudentPolitech Общие вопросы C/C++ 3 02.04.2009 22:22