create account

C언어 기초부터..입력출력 by evvele

View this thread on: hive.blogpeakd.comecency.com
· @evvele · (edited)
$2.53
C언어 기초부터..입력출력
오랜만에 올리는 글.
프로젝트 하나를 겨우 끝내고..ㅠㅠ
혼자 공부하면서 기록을 남겨둘 곳이 필요했는데 
이왕 블로그를 시작하기로 한 곳이 스팀잇이니 이곳에 남기기로 함.

><주의>
정확하지 않은 정보가 있을수도 있습니다.
제가 공부한 것을 남겨놓기 위한 목적이 가장 큽니다.
수정이 필요하거나 틀린부분이 있다면 알려주세요~!
공부과정에서 설명이 부정확한 부분이 있다면 차후 수정 하겠습니다.

가장 기본적인 입력출력 함수들을 연습해봤는데 이게 자연스럽게 익혀지지 않으면 
기초 공부과정에서 애로사항이 많다. 
오래된 예제나 최근 예제들을 비교하면서테스트 해보는것을 추천한다.
---
```
#include <iostream>
//전역 변수
int age;
float height;

void main() 
{
	//입력 함수(scanf) 활용 - 입력값을 하나씩 받기
	printf_s("★입출력함수의 기본적인 형식에 대해 알아봅니다.\n\n");
	printf_s("콘솔창에서의 입출력 함수는 기본적으로 printf_s (출력) scanf_s(입력)이 있습니다.\n");
	printf_s("scanf, printf의 함수원형은 버퍼오버플로우의 위험이 있기때문에 사용하지 않는것이 좋다고합니다.\n");
	printf_s ("\n>>변수를 하나씩 따로 입력해봅시다. \n당신의 나이는?\n");
	scanf_s("%d", &age);
	printf("당신의 키는 몇 입니까?\n");
	scanf_s("%f", &height);
	printf_s("반갑습니다 당신의 나이는 (%d) 이고 키는 (%.1f) 이군요.\n", age, height);

	//화면 지우는 함수
	//system("cls");   

	age = 0;
	height = 0;

	//입력함수 활용 - 입력값을 동시에 여러개 받기
	printf_s("\n\n>>변수를 동시에 2개 입력해봅시다. \n당신의 나이와 키를 동시에 입력해보세요.\n(입력은 공백(space),enter,개행코드로 구분될수있습니다)\n");
	scanf_s("%d%f", &age, &height);
	printf_s("반갑습니다 당신의 나이는 (%d) 이고 키는 (%.1f) 이군요 \n", age, height);

	//화면 지우는 함수
	//system("cls");

	//기타 입출력 함수
	puts("\n이번에는 printf() scanf() 이외에 다른 입출력함수를 알아봅시다.");
	puts("안녕하세요 먼저 출력함수입니다. 이문자는 puts함수를 통해 출력한 함수입니다.");				
      //puts() 문자열만 출력할수있는 함수이다. 개행코드 \n을 포함한다. 자동개행이된다. 
	puts("문자열만 출력할수 있는 함수입니다.");
	puts("이렇게 자동으로 개행(줄넘기)되는 함수입니다.개행코드가 포함되어 있다고 생각하면 됩니다.");
	puts("puts()함수는 문자열만 출력하고싶을때 사용하면 됩니다.");

	/*
	scanf는 공백 이후는 입력이 되지 않음.
	이에 비해 gets_s() 입력을 받으면 Enter를 칠 때까지 입력된 모든 문자를 저장한다.
	*/

	char animal[256];

	printf_s("\n\n또다른 입력함수를 알아봅니다. \nscanf함수는 공백이후는 입력되지 않습니다. \n토끼와거북이를 입력해보세요. \n");
	scanf_s("%s", animal, sizeof(animal));
	printf_s("scanf로 입력받은 값입니다. ->(%s)  \n띄어쓰기된 문자열은 입력이 되지 않습니다.", animal);
	printf_s("\n\n하지만 gets 함수는 입력받은 모든 문자열을 저장하고자 하는 변수에 저장할수있습니다.\n");
	printf_s("따라서 버퍼 오버플로우의 위험성이 높습니다. 현재는 표준라이브러리에서 삭제되었습니다. \ngets_s 함수를 사용합니다. \n");
	puts("\n토끼와 거북이를 입력해보세요 토끼와 다음에 공백이있는부분을 기억하세요\n");
	rewind(stdin);	//rewind->표준입력장치(stdin)의 버퍼를 비워줘야 입력함수가 씹히지 않는다.
	char animal2[256];
	gets_s(animal2, sizeof(animal2));
	printf_s("\nfgets_s함수로 입력받은 결과값입니다. ->(%s) \n띄어쓰기까지 잘 입력이 되었네요.\n", animal2);

	system("pause");
}
```
---
입출력 함수가 생각보다 종류가 많다.
color scripter 같은걸로 소스코드를 올릴수가 없으니, 고민고민하다가
코드 시작과 끝을 \``` 로 감싸면 컬러박스가 생기게 하니 보기에
나쁘지 않은 것 같다.
---
>테스트 해보고 싶으신분들께...
visual stuio 2017 사용하고 있구요. 
비쥬얼 스튜디오 -> ctrl + shift + n 누르시면 새 프로젝트 생성하는 창이 뜹니다. 
그곳에서 프로젝트명 입력하신 후, 새 프로젝트를 생성 하시고, 위 코드를 붙여 넣으시면
테스트가 가능 하실겁니다.
---
저도 과정을 겪는 중입니다. 
아직 경험도 많이 없고, 갓 시작한 코딩새싹이에요.
다들 화이팅팅팅. ^^

관련정보
https://msdn.microsoft.com/ko-kr/library/239ffwa0.aspx
👍  , , , , , , , , , ,
properties (23)
authorevvele
permlinkc
categorykr-dev
json_metadata{"tags":["kr-dev","kr","kr-newbie","kr-game","daily"],"app":"steemit/0.1","format":"markdown","links":["https://msdn.microsoft.com/ko-kr/library/239ffwa0.aspx"]}
created2018-03-01 15:18:09
last_update2018-03-01 15:28:48
depth0
children3
last_payout2018-03-08 15:18:09
cashout_time1969-12-31 23:59:59
total_payout_value1.933 HBD
curator_payout_value0.595 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length2,609
author_reputation10,900,833,622
root_title"C언어 기초부터..입력출력"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id41,405,897
net_rshares487,246,453,767
author_curate_reward""
vote details (11)
@code999 ·
공부하는 내용을 이 곳에 정리해두는 것도 괜찮은 방법이네요.
많은 발전 있으시기 바랍니다.^^
properties (22)
authorcode999
permlinkre-evvele-c-20180301t174302054z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2018-03-01 17:43:03
last_update2018-03-01 17:43:03
depth1
children1
last_payout2018-03-08 17:43:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length52
author_reputation1,479,269,516,287
root_title"C언어 기초부터..입력출력"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id41,434,853
net_rshares0
@evvele ·
앗 좋은 조언 감사합니다. 열심히 할께요..ㅎㅎ
properties (22)
authorevvele
permlinkre-code999-re-evvele-c-20180301t183715003z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2018-03-01 18:37:15
last_update2018-03-01 18:37:15
depth2
children0
last_payout2018-03-08 18:37:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length26
author_reputation10,900,833,622
root_title"C언어 기초부터..입력출력"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id41,445,250
net_rshares0
@reropi ·
Tollll!
properties (22)
authorreropi
permlinkre-evvele-c-20180301t155853200z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2018-03-01 15:58:54
last_update2018-03-01 15:58:54
depth1
children0
last_payout2018-03-08 15:58:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length7
author_reputation558,391,902
root_title"C언어 기초부터..입력출력"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id41,413,989
net_rshares0