C++ за 21 день седьмое издание


cin.get(CStyleStr, 9); // прекращение вставки на 9-ом символе



Download 1,38 Mb.
bet410/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   406   407   408   409   410   411   412   413   ...   437
Bog'liq
word1

cin.get(CStyleStr, 9); // прекращение вставки на 9-ом символе

Этот более безопасный способ вставки текста в буфер стиля С приведен в листинге 27.5.


ЛИСТИНГ 27.5. Вставка в буфер стиля С без выхода за его границы__________________________





    1. #include




    1. #include




    1. using namespace std;








    1. int main()




    1. {




    1. cout « "Enter a line: " « endl;




    1. char CStyleStr[10] = {0};




    1. cin.get(CStyleStr, 9);




    1. cout « "CStyleStr: " « CStyleStr « endl;








  1. return 0;




  1. }



Результат


Enter a line:


Testing if I can cross the bounds of the buffer


CStyleStr: Testing i


Анализ

Как демонстрирует вывод, благодаря использованию в строке 8 метода c i n : : g e t (),





  1. буфер стиля С были записаны только первые девять символов. Это самый безопасный способ работы со строками стиля С.



СОВЕТ По возможности не используйте строки стиля С и массивы типа char. Исполь­ зуйте вместо них тип std::string.
Использование объекта std :: cin для ввода


в переменную типа std :: string

Объект c in — весьма универсальный инструмент, позволяющий поместить введенную пользователем строку непосредственно в переменную типа s t d : : s t r i n g :



596 ЗАНЯТИЕ 27. Применение потоков для ввода и вывода


std::string Input;


cin » Input; // прекращение вставки при первом пробеле

В листинге 27.6 приведен ввод с использованием объекта c i n в переменную типа s t d : : s t r i n g .



  1. И С Т И Н Г 27 .6 . Вставка текста в строку std::string с использованием объекта cin_______




    1. #include




    1. #include




    1. using namespace std;



3:



  1. int main ()




  1. {

    1. cout « "Enter your name: ";




    1. string Name;




    1. cin » Name;




    1. cout « "Hi " « Name « endl;








  1. return 0;




  1. }



Результат


Enter your name: Siddhartha Rao


Hi Siddhartha


Анализ

Вывод отобразил мое имя не полностью, поскольку так была реализована программа.





  1. ожидал, что переменная Name, заполняемая объектом c i n в строке 8, будет содержать введенное мной имя и фамилию, а не только имя. Что же произошло? Объект c i n остано­ вил вставку, когда встретился с первым пробелом.

Чтобы позволить пользователю ввести строку полностью, включая пробелы, необходи­ мо использовать функцию g e t l i n e ():


string Name;


getline(cin, Name);

Применение функции g e t l i n e () с объектом c i n показано в листинге 27.7.


Л И СТИ Н Г 2 7 .7 . Чтение введенной пользователем строки полностью





  1. использованием функции getline () и объекта cin__________________________________




    1. #include




    1. #include




    1. using namespace std;



3:



  1. int main()




  1. {




  1. cout « "Enter yourname:" ;




  1. string Name;




  1. getline(cin, Name);




  1. cout « "Hi " « Name <

Использование объекта std::fstream для работы с файлом

597



10:



  1. return 0;



12: }


Результат


Enter your name: Siddhartha Rao


Hi Siddhartha Rao


Анализ

Функция g e t l i n e (), как показано в строке 8, реш ила проблему ввода символа про­ бела. Теперь вывод содержит введенную пользователем строку полностью.




Использование объекта std :: f stream для работы с файлом

Класс s t d : : f s tr e a m языка C++ обеспечивает (относительно) независимый от плат­


формы доступ к файлу. Класс s t d : : f s tre a m наследует класс s t d : : o f s tr e a m для записи


в файл и класс s t d : : o f s tr e a m для чтения из него.


Другими словами, класс s t d : : f s tr e a m обеспечивает возможность как чтения, так и


записи.




СОВЕТ

Чтобы использовать класс


std::fstream,

включите его заголовок:





#include

Открытие и закрытие файла с использованием методов open () и close ()

Прежде чем использовать объект класса f s tre a m , o f s tr e a m или i f stre a m , необходи­ мо открыть файл с помощью метода open ():





Download 1,38 Mb.

Do'stlaringiz bilan baham:
1   ...   406   407   408   409   410   411   412   413   ...   437




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish