ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๐ŸŽ€ ๋ฌธ์ž์—ด VS ๋ฌธ์ž๋ฐฐ์—ด 

char name1[6]={'G','r','a','c','e','\0'}; // name1์€ ๋ฌธ์ž์—ด "Grace"
char name2[5]={'G','r','a','c','e'}; //name2๋Š” ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๊ณ  ๋‹จ์ˆœ ๋ฌธ์ž ๋ฐฐ์—ด

null ๊ฐ’์— ๋”ฐ๋ผ ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž๋ฐฐ์—ด์ด ์ •ํ•ด์ง„๋‹ค. 

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ œ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž 

#include <iostream>
using namespace std;
int main()
{
	// ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ถœ๋ ฅํ•˜๊ธฐ, 
	char address[100]; // ํฌ๊ธฐ๊ฐ€ 100์ธ char address ๋ฐฐ์—ด ์ƒ์„ฑ
	cout << "์ฃผ์†Œ ์ž…๋ ฅ: ";
	cin >> address; // ์ž…๋ ฅ๋ฐ›์€ ์ฃผ์†Œ๋ฅผ address์— ๋„ฃ๊ธฐ
	cout << "์ž…๋ ฅ๋œ ์ฃผ์†Œ๋Š” " << address << " ์ž…๋‹ˆ๋‹ค." << endl;


	return 0;
}

 

๋ฏธ๋ฆฌ address ๊ฐ’์„ ๋ฐ›์„ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ด๋‘๋ฉด ๋‘๊ณ  cin์„ ํ†ตํ•ด ์ž…๋ ฅ๋ฐ›์€ ์ฃผ์†Œ๋ฅผ ๋ฐฐ์—ด address์— ๋„ฃ์–ด์ค€๋‹ค. 

 

 

RESULT: 

 

๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. ๋„์–ด์“ฐ๊ธฐ๋ฅผ ์ž…๋ ฅํ•  ์‹œ์— ํ•˜๋‚˜์˜ ๋‹จ์–ด๋งŒ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด '๊ฒฝ๊ธฐ๋„ ์„ฑ๋‚จ์‹œ ๋ถ„๋‹น๊ตฌ'๋ฅผ ์ž…๋ ฅํ•˜๋ฉด '๊ฒฝ๊ธฐ๋„' ๋งŒ ์ž…๋ ฅ๋œ๋‹ค. 

 

 

 

์ด๋•Œ cin.getline()์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋ฐ›์œผ๋ฉด ์œ„์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.  

 

โœจ getline() 

 

getline์€ istream ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์†ํ•œ cin.getline() ํ•จ์ˆ˜์™€ string ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์†ํ•œ getline() ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค. 

 

  • istream ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ cin.getline()
    • C์–ธ์–ด ์Šคํƒ€์ผ์˜ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉ ( charํ˜• ๋ฐฐ์—ด, ๋ฌธ์ž์—ด์˜ ๋์ด ๋„๋ฌธ์ž)
    • ๋ฌธ์ž ๋ฐฐ์—ด์ด๋ฉฐ ๋งˆ์ง€๋ง‰ ๊ธ€์ž๊ฐ€ '\0' ์ธ c-string์„ ์ž…๋ ฅ ๋ฐ›๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค
    • ํฌ๊ธฐ n์„ ์ง€์ •ํ•˜๋ฉด n-1 ๊ฐœ์˜ ๋ฌธ์ž ๊ฐœ์ˆ˜๋งŒํผ ์ฝ์–ด์™€ str์— ์ €์žฅํ•œ๋‹ค. ( ์—ฌ๊ธฐ์„œ n๋ฒˆ์งธ ๋ฌธ์ž๋Š” NULL('\0')์œผ๋กœ ๋ฐ”๊พผ๋‹ค)
    • ์„ธ ๋ฒˆ์งธ ์ธ์ž์ธ delim์€ ๋ณ„๋„๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์—”ํ„ฐ('\n')๋กœ ์ธ์‹ํ•œ๋‹ค
    • ์ง€์ •ํ•œ delimiter๋ฅผ ๋งŒ๋‚˜๊ธฐ ์ „๊นŒ์ง€ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ฝ์–ด์„œ str ๋ฐฐ์—ด์— ์ €์žฅ (๋””ํดํŠธ ๊ตฌ๋ถ„์ž๋Š” ๊ฐœํ–‰ ๋ฌธ์ž)
    • delim์„ ์ง€์ •ํ•ด์ฃผ๋ฉด ๊ทธ ์ œํ•œ์ž ๋ฌธ์ž ์ง์ „๊นŒ์ง€ ์ฝ์–ด str์— ์ €์žฅํ•œ๋‹ค.
cin.getline(char str,streamsize n);
cin.getline(char str,streamsize n,char dlim);

์ฆ‰, ํ˜•์‹์€ cin.getline(๋ณ€์ˆ˜ ์ฃผ์†Œ, ์ตœ๋Œ€ ์ž…๋ ฅ๊ฐ€๋Šฅ ๋ฌธ์ž์ˆ˜, ์ข…๊ฒฐ๋ฌธ์ž); ์ด๋‹ค. 

 

  • string์˜ getline() ํ•จ์ˆ˜
    • ์ž…๋ ฅ ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ ๋ฌธ์ž ์ˆ˜๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. 
    • ์ง€์ •ํ•œ delimiter๋ฅผ ๋งŒ๋‚˜๊ธฐ ์ „๊นŒ์ง€ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ฝ์–ด์„œ string ๊ฐ์ฒด์— ์ €์žฅํ•œ๋‹ค.
    • ์ด๋•Œ์˜ ๋””ํดํŠธ ๊ตฌ๋ถ„์ž๋Š” ๊ฐœํ–‰ ๋ฌธ์ž๋‹ค. 
getline(istream& is,string str);
getline(istream& is,string str,char dlim);

 

์œ„์˜ ์ฃผ์†Œ ์ž…๋ ฅ๋ฐ›๋Š” ์ฝ”๋“œ๋ฅผ ๋นˆ์นธ์ด ์žˆ์–ด๋„ <Enter> ํ‚ค๊ฐ€ ์ž…๋ ฅ ๋ ๋•Œ๊นŒ์ง€ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋ณ€ํ™˜ํ•ด๋ณด์ž. 

 

#include <iostream>
using namespace std;

int main()
{
	cout << "์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: ";

	char address[100];
	cin.getline(address, 100, '\n'); // ๋นˆ์นธ์ด ์žˆ์–ด๋„ null ์ด ์ž…๋ ฅ๋ ๋•Œ๊นŒ์ง€ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ์ธ์‹

	cout << "์ฃผ์†Œ๋Š” " << address << "์ž…๋‹ˆ๋‹ค\n";
}

 

์ด๋Ÿฌ๋ฉด ์œ„์˜ ๋ฌธ์ œ์ ์ด ํ•ด๊ฒฐ๋œ ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2025/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 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 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ