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์ด ์๋ ์๋ฆฌ๋ ์ ๋ ฅ์ ์ด๋์์ ์ฐพ์ ๊ฑด์ง ๋ํ๋ด๋ ๋งค๊ฐ๋ณ์๊ฐ ๋ค์ด๊ฐ๋ ์๋ฆฌ์ด๋ค.