hugDog
Android DevLog
hugDog
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ™Œ Hello? (162)
    • ๐Ÿงฉ์•ˆ๋“œ๋กœ์ด๋“œ (12)
      • ๊ฐœ๋… ์ •๋ฆฌ (5)
      • ๋ฒ„๊ทธ ํ•ด๊ฒฐ (4)
      • ๊ธฐํƒ€ (3)
    • ๐Ÿ”์•Œ๊ณ ๋ฆฌ์ฆ˜ (54)
      • ๊ฐœ๋… (0)
      • ๋ฐฑ์ค€ (48)
      • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (6)
    • ๐Ÿ“„๊ฐœ๋ฐœ ์ผ์ง€ (0)
      • FINPO (0)
    • ๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (71)
      • C++ ์ •๋ฆฌ (49)
      • C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค ์—ฐ์Šต๋ฌธ์ œ (20)
      • Kotlin (2)
    • โญProject (1)
    • ๐ŸšดTIL (13)
      • Clean Code (13)
    • ๐Ÿšฉ๊ธฐํƒ€ (9)
      • ๋ชฉํ‘œ (6)
      • ์ผ์ƒ (3)
      • ๋ฌธ์„œ (0)

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
hugDog
๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++ ์ •๋ฆฌ

C++ ์ •๋ฆฌ -6 (getline(), get(), failbit, string ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ)

๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++ ์ •๋ฆฌ

C++ ์ •๋ฆฌ -6 (getline(), get(), failbit, string ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ)

2019. 6. 16. 16:41
728x90

istream ํด๋ž˜์Šค๊ฐ€ ํ–‰๋‹จ์œ„๋กœ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜๋Š” ํด๋ž˜์Šค ๋ฉค๋ฒ„ ํ•จ์ˆ˜์ธ getline()๊ณผ get()์„ ์ œ๊ณตํ•œ๋‹ค.

๋‘˜ ๋‹ค ์ „์ฒด ์ž…๋ ฅ ํ–‰์„ ์ฝ๋Š”๋‹ค. ์ฆ‰ ๊ฐœํ–‰ ๋ฌธ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ์ฝ๋Š”๋‹ค.

getline() : ๊ฐœํ–‰ ๋ฌธ์ž๋ฅผ ์ฝ์–ด์„œ ํ๊ธฐ

get() : ์ž…๋ ฅ ํ์— ๊ฐœํ–‰ ๋ฌธ์ž๋ฅผ ๋‚จ๊ฒจ๋‘”๋‹ค.

 

getline()์„ ์ด์šฉํ•œ ํ–‰ ๋‹จ์œ„ ์ž…๋ ฅ

Enterํ‚ค์— ์˜ํ•ด ์ „๋‹ฌ๋˜๋Š” ๊ฐœํ–‰ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅ์˜ ๋์œผ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ ํ•œ ํ–‰ ์ „์ฒด๋ฅผ ์ฝ๋Š”๋‹ค.

cin.getline()์„ ํ•จ์ˆ˜ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

cin.getline(name,20); //name์€ ์ž…๋ ฅํ•œ ํ–‰์„ ์ €์žฅํ•  ๋ฐฐ์—ด ์ด๋ฆ„, 20์€ ์ž…๋ ฅ๋ฐ›์„ ๋ฌธ์ž์˜ ํ•œ๊ณ„์ด๋‹ค. (์ตœ๋Œ€ 19 ๋ฌธ์ž๊นŒ์ง€ ๊ฐ€๋Šฅ, ๋‚˜๋จธ์ง€ 1๊ฐœ๋Š” ๋„๋ฌธ์ž)

๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด์— ์ €์žฅํ•  ๋•Œ ๊ฐœํ–‰ ๋ฌธ์ž๋Š” ๋„๋ฌธ์ž๋กœ ๋Œ€์ฒด๋จ.

 

get()์„ ์ด์šฉํ•œ ํ–‰ ๋‹จ์œ„ ์ž…๋ ฅ

๋ฉค๋ฒ„ ํ•จ์ˆ˜ get()์€ getline() ํ•จ์ˆ˜์ฒ˜๋Ÿผ ๋™์ž‘ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ฐœํ–‰ ๋ฌธ์ž๋ฅผ ์ฝ์–ด์„œ ๋ฒ„๋ฆฌ์ง€ ์•Š๊ณ  ์ž…๋ ฅ ํ์— ๊ทธ๋Œ€๋กœ ๋‚จ๊ฒจ๋‘ .

ex)

cin.get(name,ArSize);

cin.get(dessert,ArSize); //๋ฌธ์ œ ๋ฐœ์ƒ

--> ์ฒซ ๋ฒˆ์งธ ํ˜ธ์ถœ์ด ์ž…๋ ฅ ํ์— ๊ฐœํ–‰ ๋ฌธ์ž๋ฅผ ๊ทธ๋Œ€๋กœ ๋‚จ๊ฒจ๋†“๊ธฐ ๋•Œ๋ฌธ

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 1

cin.get() ํ˜ธ์ถœ์€ ๋ฌด์กฐ๊ฑด ๋ฌธ์ž ํ•˜๋‚˜๋ฅผ ์ฝ์Œ

cin.get(name,ArSize); //์ฒซ ๋ฒˆ์งธ ํ–‰ ์ฝ๋Š”๋‹ค.

cin.get(); //๊ฐœํ–‰ ๋ฌธ์ž ์ฝ๋Š”๋‹ค.

cin.get(dessert,ArSize); //๋‘ ๋ฒˆ์งธ ํ–‰ ์ฝ๋Š”๋‹ค.

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 2

cin.get(name,ArSize).get();

1. get(name,ArSize)๊ฐ€ cin์„ ๋ฆฌํ„ดํ•จ

2. ๋ฆฌํ„ด๋œ cin์ด get() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฐ์ฒด๋กœ ์‚ฌ์šฉ

 

getline() ๋Œ€์‹  get()์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

1. ๊ตฌ์‹ c++์—์„œ๋Š” getline()์ด ์—†์Œ

2. ์—๋Ÿฌ ์ฒดํ‚น์ด ํŽธํ•จ

 

๋นˆ ํ–‰๊ณผ ๊ธฐํƒ€ ๋ฌธ์ œ์  (get()์—์„œ๋งŒ ์ ์šฉ)

get()์ด ๋นˆ ํ–‰์„ ์ฝ์œผ๋ฉด failbit์ด ์„ค์ •๋จ.

failbit : ๊ณ„์†๋˜๋Š” ์ž…๋ ฅ์„ ๋ง‰๊ณ , ์ž…๋ ฅ์„ ๋ณต์›ํ•˜๋ ค๋ฉด cin.clear(); ์‚ฌ์šฉํ•ด์•ผ ํ•จ.

 

์ž…๋ ฅ ๋ฌธ์ž์—ด์ด ๋Œ€์ž…๋œ ๊ณต๊ฐ„๋ณด๋‹ค ๋” ๊ธธ ๊ฒฝ์šฐ

getline()๊ณผ get()์€ ๋‚˜๋จธ์ง€ ๋ฌธ์ž๋“ค์„ ์ž…๋ ฅ ํ์— ๋‚จ๊ฒจ๋‘ .

๊ทธ๋Ÿฌ๋‚˜ ๋ถ€๊ฐ€์ ์œผ๋กœ getline()์€ failbit์„ ์„ค์ •ํ•˜๊ณ  ๋” ์ด์ƒ์˜ ์ž…๋ ฅ์„ ๋ฐ›์ง€ ์•Š์Œ      

 

๋ฌธ์ž์—ด๊ณผ ์ˆ˜์น˜์˜ ํ˜ผํ•ฉ ์ž…๋ ฅ

cin>>year; //1988 ์ž…๋ ฅ ํ›„ ๊ฐœํ–‰ ๋ฌธ์ž๊ฐ€ ์ž…๋ ฅ ํ์— ๋‚จ์•„์žˆ์Œ

cin.getline(address,80); //์ž…๋ ฅ ํ์— ๋‚จ์•„์žˆ๋˜ ๊ฐœํ–‰ ๋ฌธ์ž๊ฐ€ ๋Œ€์ž…๋จ.

 

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1

cin>>year;

cin.get() //๋˜๋Š” cin.get(ch);

 

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 2

(cin>>year).get(); //๋˜๋Š” (cin>>year).get(ch); 

 

string ํด๋ž˜์Šค

๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๋Š” ๋ฐ ๋ฌธ์ž ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹ , string ๋ณ€์ˆ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

string ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, ํ”„๋กœ๊ทธ๋žจ์— string ํ—ค๋”ํŒŒ์ผ์„  ํฌํ•จ์‹œ์ผœ์•ผ ํ•จ.

string ํด๋ž˜์Šค๋Š” std ์ด๋ฆ„ ๊ณต๊ฐ„์— ์†ํ•ด ์žˆ์Œ.

using ์ง€์‹œ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ std::string์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ ํด๋ž˜์Šค ์ฐธ์กฐํ•ด์•ผ ํ•จ.

 

์—ฌ๋Ÿฌ ๋ฉด์—์„œ string ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž ๋ฐฐ์—ด๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

1. c์Šคํƒ€์ผ ๋ฌธ์ž์—ด๋กœ string ๊ฐ์ฒด ์ดˆ๊ธฐํ™” ๊ฐ€๋Šฅ

2. cin์„ ์‚ฌ์šฉํ•˜์—ฌ string ๊ฐ์ฒด์— ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ์ €์žฅ ๊ฐ€๋Šฅ

3. cout์„ ์‚ฌ์šฉํ•˜์—ฌ string ๊ฐ์ฒด ๋””์Šคํ”Œ๋ ˆ์ด ๊ฐ€๋Šฅ

4. ๋ฐฐ์—ด ํ‘œ๊ธฐ ์‚ฌ์šฉํ•ด์„œ string ๊ฐ์ฒด์— ์ €์žฅ๋ผ์žˆ๋Š” ๊ฐœ๋ณ„์  ๋ฌธ์ž๋“ค์— ์ ‘๊ทผ ๊ฐ€๋Šฅ

 

string๊ฐ์ฒด์™€ ๋ฌธ์ž ๋ฐฐ์—ด์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ string ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋ผ ๋‹จ์ˆœํ•œ ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•จ

 

string str1; //๊ธธ์ด๊ฐ€ 0์ธ string ๊ฐ์ฒด ์ƒ์„ฑ

string str2 = "panther"; //ํฌ๊ธฐ ๋ฌธ์ œ๋ฅผ ํ”„๋กœ๊ทธ๋žจ์ด ์ž๋™์œผ๋กœ ์„ค๊ณ„

cin>>str1; //str1์€ ์ž…๋ ฅ์— ๋งž๊ฒŒ ํฌ๊ธฐ๊ฐ€ ์กฐ์ ˆ๋จ

 

string ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํŽธ๋ฆฌํ•˜๊ณ  ์•ˆ์ „ํ•˜๋‹ค.

 

charํ˜• ๋ฐฐ์—ด : charํ˜• ์ €์žฅ ๋‹จ์œ„์˜ ์ง‘ํ•ฉ์ฒด

string ํด๋ž˜์Šค ๋ณ€์ˆ˜ : ๋ฌธ์ž์—ด์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ•˜๋‚˜์˜ ์‹ค์ฒด

 

c++๋ฌธ์ž์—ด ์ดˆ๊ธฐํ™”

c++์€ ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ๊ฐ์ฒด์— ๋ฆฌ์ŠคํŠธ ์ดˆ๊ธฐํ™”๋ฅผ ๊ฐ€๋Šฅ์ผ€ ํ•จ.

char a[]={"Le CHA"};

string d = {"The B"};

 

๋Œ€์ž…, ๊ฒฐํ•ฉ, ์ถ”๊ฐ€

ํ•˜๋‚˜์˜ string ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฅธ string ๊ฐ์ฒด์— ๊ฐ„๋‹จํ•˜๊ฒŒ ๋Œ€์ž… ๊ฐ€๋Šฅ

string str1;

string str2 = "panther";

str1=str2;

 

+์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๊ฐœ์˜ string ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜๋กœ ๊ฒฐํ•ฉํ•˜๊ฑฐ๋‚˜, +=์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด์˜ string ๊ฐ์ฒด์˜ ๋์— ๋˜ ๋‹ค๋ฅธ string ๊ฐ์ฒด ๋ง๋ถ™์ด๊ธฐ ๊ฐ€๋Šฅ

string str3;

str3 = str1+str2;

str1+=str2;

 

string ํด๋ž˜์Šค์˜ ์กฐ์ž‘

cstring ํ—ค๋”ํŒŒ์ผ ์•ˆ์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ c์Šคํƒ€์ผ์˜ ๋ฌธ์ž์—ด๋“ค ์กฐ์ž‘ ๊ฐ€๋Šฅ

strcpy() : ๋ฌธ์ž์—ด์„ ๋ฌธ์ž ๋ฐฐ์—ด์— ๋ณต์‚ฌ

strcat() : ๋ฌธ์ž์—ด์„ ๋ฌธ์ž ๋ฐฐ์—ด์— ์ถ”๊ฐ€

 

ex)

strcpy(charr1,charr2); //charr2๋ฅผ charr1์— ๋ณต์‚ฌ

strcat(charr1,charr2); //charr2์˜ ๋‚ด์šฉ์„ charr1์— ์ถ”๊ฐ€

 

int len1 = str1.size() //str1์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•œ๋‹ค.

                        ๊ฐ์ฒด   ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ : ๊ฐ™์€ ํด๋ž˜์Šค์— ์†ํ•œ ๊ฐ์ฒด์— ์˜ํ•ด์„œ๋งŒ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜

str1์€ string ๊ฐ์ฒด์ด๊ณ , size()๋Š” string ๋ฉ”์„œ๋“œ์ด๋‹ค.

 

string ํด๋ž˜์Šค์˜ ์ž…์ถœ๋ ฅ

ํ•œ ํ–‰์„ ์ฝ์–ด string ๊ฐ์ฒด ์•ˆ์— ๋„ฃ๋Š” ์ฝ”๋“œ

getline(cin,str) //istream ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋‹˜

cin์ด ์žˆ๋Š” ์ž๋ฆฌ๋Š” ์ž…๋ ฅ์„ ์–ด๋””์—์„œ ์ฐพ์„ ๊ฑด์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์ž๋ฆฌ์ด๋‹ค.

 

728x90
    '๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++ ์ •๋ฆฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • C++ ์ •๋ฆฌ -8 (๊ณต์šฉ์ฒด, ์—ด๊ฑฐ์ฒด, ์—ด๊ฑฐ์ฒด์˜ ๊ฐ’ ๋ฒ”์œ„)
    • C++ ์ •๋ฆฌ -7 ( ๊ตฌ์กฐ์ฒด, ๊ตฌ์กฐ์ฒด ์„œ์ˆ , ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜, ๊ตฌ์กฐ์ฒด ์ดˆ๊ธฐํ™”, ๊ตฌ์กฐ์ฒด์˜ ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒด ์•ˆ์˜ ๋น„ํŠธ ํ•„๋“œ)
    • C++ ์ •๋ฆฌ -5 (auto ์„ ์–ธ, ๋ฐฐ์—ด, ๋ฌธ์ž์—ด)
    • C++ ์ •๋ฆฌ -4 (const ์ œํ•œ์ž, lvalue, ๋ถ€๋™์†Œ์ˆ˜์ ์ˆ˜ํ˜•, setf(), ๋ฐ์ดํ„ฐํ˜• ๋ณ€ํ™˜)
    hugDog
    hugDog
    ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต๋ถ€ ์ค‘์ธ ํ•™์ƒ์ž…๋‹ˆ๋‹ค!

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

    ๊ฐœ์ธ์ •๋ณด

    • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
    • ํฌ๋Ÿผ
    • ๋กœ๊ทธ์ธ

    ๋‹จ์ถ•ํ‚ค

    ๋‚ด ๋ธ”๋กœ๊ทธ

    ๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
    Q
    Q
    ์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
    W
    W

    ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

    ๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
    E
    E
    ๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
    C
    C

    ๋ชจ๋“  ์˜์—ญ

    ์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
    S
    S
    ๋งจ ์œ„๋กœ ์ด๋™
    T
    T
    ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
    H
    H
    ๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
    Shift + /
    โ‡ง + /

    * ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.