Visual studio 2017에서는 c언어의 scanf 함수 사용시 아래와 같은 에러가 발생하게 된다.





간단하게 scanf 는 위험하니 사용하지말라는 소리이다. 

오버플로우 등에 취약한 점이 많기 때문이다. 그래서 보안상 취약점이 노출되어 사용하지 않기를 권장한다.

대신 최신 Visual studio 에서는 scanf_s의 사용을 권장한다.

간단한 문법 공부나 테스트를 위해서 scanf를 사용할때에는 아래와 같은 방법을 따르도록하자.


첫번째로 해당 경고는 무시하겠다는 의미이다. 


#define  _CRT_SECURE_NO_WARNINGS


코드를 추가해주자.

그러면 에러가 사라지게 된다.


Posted by 꿈만은공돌
,

Visual Studio 2017 C#/.NET 패키지인 NuGet 을 추가하는 방법에 대해서 알아보겠다.

Nuget 패키지 사이트 소개 : http://hijuworld.tistory.com/17

다양한 패키지가 있지만 그중에 C# 7.0에서 지원하는 Tuple 패키지를 추가하는 예제이다.



1. C# 빈 프로젝트를 생성한다.



2. 솔루션 탐색기 탭에서 프로젝트에 종속성을 선택하고 오른쪽 버튼을 클릭 -> NuGet 패키지 관리 클릭




3. 찾아보기 -> System.valueTuple 검색 -> 패키지 선택 -> 설치





4. 변경 내용 미리 보기 에서 확인 클릭 




5. 설치 내역 출력화면에서 확인




6. 예제를 작성하여 테스트


using System;

namespace TestAddTuple
{
	class Test
	{
		public (int id, string name, bool isMan) getInform()
		{
			return (id: 3, name: "홍길동", isMan: true);
		}
	}
    class Program
    {
        static void Main(string[] args)
        {
			Test t1 = new Test();
			var people = t1.getInform();
			Console.WriteLine("id : " + people.id);
			Console.WriteLine("name : " + people.name);
			if(people.isMan)
				Console.WriteLine("man");
			else
				Console.WriteLine("woman");
		}			
    }
}


- 출력 결과 -

id : 3

name : 홍길동

man

계속하려면 아무 키나 누르십시오 . . .




참고 서적 : 크로스 플랫폼 개발을 위한 C# 7과 닷넷 코어 2.0 (에이콘 출판사)


Posted by 꿈만은공돌
,


프로젝트를 할때 함수별 또는 클래스 별로 단위 테스트를 진행하고 문제가 있는지 검증을 해보면 좀더 완성도 높은 프로그램을 만들 수 있다.


Microsoft Visual Studio 2017에서 이런 단위 테스트를 어떻게 하는지 알아보자.


클래스를 만들어 그에 속한 함수들을 검증해보는 단위 테스트 프로젝트를 만들어 보자.


1. 파일 -> 새로 만들기 -> 프로젝트 선택




2. Visual C# -> .NET Standard -> 클래스 라이브러리(.NET Standard) -> 라이브러리 이름 지정 -> 확인 클릭






3. 클래스의 이름을 원하는 이름으로 변경하기




4. 아래와 같은 확인창이 뜨면 예(Y) 클릭 




5. 라이브러리에 클래스와 코드를 작성 -> Ctrl + s 로 저장



- 코드 -

using System;

namespace AddLib
{
    public class AddClass
    {
		public double double_add(double a, double b)
		{
			return a + b;
		}
		public int int_add(int a, int b)
		{
			return a * b; //테스트를 위해 오타 작성
		}
	}
}



이제 위에서 작성한 코드를 테스트 하는 단위 테스트 프로젝트를 만들자


1. 파일 추가 -> 추가 -> 새 프로젝트




2. visual C# -> NET Core -> xUnit 테스트 프로젝트 선택 -> 프로젝트 이름 입력 -> 확인 클릭 




3. 단위 테스트 프로젝트에 이전에 작성한 클래스를 추가한다. 

솔루션 탐색기 -> 단위 테스트 프로젝트에 종속성 -> 참조 추가




4. 이전에 테스트용으로 만든 프로젝트 추가




5. 단위테스트 프로젝트에 테스트 코드 작성



- 코드 -


using System;
using Xunit;
using AddLib; //추가
namespace XUnitTestProject1
{
    public class UnitTest1
    {
        [Fact]
        public void Test1()
        {
			double a = 3;
			double b = 4;
			double expected = 7;
			var calc = new AddClass();
			var actual = calc.double_add(a, b);
			Assert.Equal(expected, actual);
		}
		[Fact]
		public void Test2()
		{
			int a = 3;
			int b = 4;
			int expected = 7;
			var calc = new AddClass();
			var actual = calc.int_add(a, b);
			Assert.Equal(expected, actual);
		}
	}
}


6. 단위 테스트 시작

테스트 -> 창 -> 테스트 탐색기




7. 테스트 탐색기 -> 아래 그림과 같이 테스트 실행




8. 아래와 같이 테스트 결과 확인

예상한대로 한개의 에러가 발생하였다.



참고 : 크로스 플랫폼 개발을 위한 C# 7과 닷넷 코어 2.0(에이콘) 서적



Posted by 꿈만은공돌
,

Microsoft Visual studio 2017 C# 빈 콘솔 프로젝트 생성하는 방법이다.



1. 파일 -> 새로 만들기 -> 프로젝트 클릭 







2. Visual C# -> .NET Core -> 콘솔 앱(.NET Core) 선택 -> 프로젝트 이름 입력 -> 확인 선택





3. 코드 입력 -> Ctrl + F5 로 컴파일 및 실행



Posted by 꿈만은공돌
,

Microsoft Visual studio 2017 에서 빈 콘솔 프로젝트 생성하여 Hello world 를 화면에 출력 하는 방법 이다.

c와 C++ 모두 방법은 동일하며 5번에서 파일 선택시 파일 확장자를 .c 로 생성하면 c언어 코드를 작성할 수 있다.



1. 파일 -> 새로만들기 -> 프로젝트 클릭





2. Visual C++ -> Windows 데스크톱 선택 -> Windows 데스크톱 마법사 선택 -> 

   프로젝트 이름 입력 -> 확인

(Windows 콘솔 응용 프로그램 선택시 빈프로젝트로 만들 수 없음)







3. 빈프로젝트 체크, 미리컨파일된 헤더, SDL 검사 체크 해제 -> 확인 클릭





4. 새로은 프로젝트가 생성

   오른쪽 에 소스파일에 오른쪽 버튼 클릭 -> 추가 -> 새항목 선택





5. 왼쪽에서 Visual C++ 선택 -> C++ 파일 선택 -> 파일이름 입력 -> 추가 클릭





6. 코드를 입력 -> Ctrl + F5로 컴파일 및 실행 



Visual studio 2017에서 주의해야 할 점은 scanf 함수를 사용할 때 에러가 발생하여 컴파일이 안될수도 있다.


scanf 함수가 보안상 이슈가 있어서 사용을 못하게 하는 것인데 해당 문제는 아래 링크를 잠고하자.


Visual studio 2017에서 Scanf 사용시 에러가 날때 : http://hijuworld.tistory.com/47






추가로 Visual studio 2017 에서 코드를 자동 정렬 시켜서 보기 좋게 만드는 방법을 소개한 링크이다.


Visual studio 2017 자동 서식 : http://hijuworld.tistory.com/11


아래는 Visual studio 2017 에서 C# 프로젝트를 만드는 방법을 소개한 링크이다.


Visual studio 2017 C# 프로젝트 만들기 : http://hijuworld.tistory.com/10

Posted by 꿈만은공돌
,

Visual Studio 2017 에서 자동 서식을 이용하여 코드 들여쓰기나 간격 등을 자동으로 맞춰준다.


아래 코드와 같이 들여쓰기가 전혀 안된 코드에서 Ctrl +K, D를 눌려주면 된다.




아래와 같이 정렬된 코드를 볼 수 있다.




Posted by 꿈만은공돌
,