본문 바로가기

Research & Studies/Programming5

[C언어] fopen함수-txt파일 이름을 변수로 입력받아 열기. 안녕하세요! 오늘은 fopen함수를 이용하여 txt파일의 데이터를 읽어올때 txt파일 이름을 입력하여 받아오는 법에 대해서 이야기해보겠습니다. 기존의 fopen함수로 txt파일의 데이터 값을 읽어올 때는 아래와 같은 방법으로 데이터를 읽어왔습니다. fopen("example.txt","r") 그러나 이 방식은 읽어올 txt의 이름을 미리 정해두고 데이터를 읽어온다는것을 알 수 있습니다. 만약 필요에따라 코더가 원하는 txt파일을 불러와야 한다면 어떻게 해야 할까요? 저는 아래와 같은 방법을 사용했습니다. 123456789101112131415161718192021222324252627282930313233343536 #include "stdafx.h"#include "string.h" int main().. 2016. 12. 30.
[알고리즘] a la russe 알고리즘 (곱셈 알고리즘) [알고리즘] a la russe 알고리즘 (곱셈 알고리즘) ​ 오늘은 곱셈 알고리즘인 a la russe 알고리즘에 대해서 이야기해보려 합니다. 먼저 우리가 일반적으로 사용하고 있는 곱셈 방식은 다음과 같습니다. 이렇게 간단하게 보이는 곱셈 방식도 사실 다음과 같은 수학적 관점에 의해서 설명할 수 있습니다. 분석해보면 먼저 자릿수 별로 구분짓고 곰셈을 행한뒤 자릿수에 맞게 더하면되는 방식입니다. 간단하죠? 그럼 이제 a la russe 곱셈 알고리즘에 대해서 이야기해 볼 시간입니다. a la russe 곱셈 알고리즘은 다음과 같은 방식으로 이루어집니다. 한 번 따라서 해보시면 쉽게 이해가능하실겁니다. 1. 두 개의 정수를 첫번째, 두번째 위치에 기입한다. 2. 만약 첫번째 수가 홀수이면 두번째수를 세번째.. 2016. 11. 23.
[c언어] fgets함수 개행(enter) 제거하기 fgets함수 개행(enter) 제거하기 ​ ​오늘은 저번 포스트에서 살짝 말씀드렸듯이 fgets함수의 개행(enter)효과를 제거해보려합니다. 이 포스트를 보시기전 먼저 아래의 포스트를 먼저 보시면 훨씬 더 쉽게 이해하실 수 있습니다 :) [C언어]문자열 2개 합치기 (How to concatenate 2 strings?) http://wonderlands2.tistory.com/31 먼저, fgets함수의 형태에 대해서 한 번 확인해봐야합니다. char *fgets(char *str, int n, FILE *stream) fgets함수는 fgets(입력받을 변수명, 문자열의 최대길이[배열 or 변수의 최대길이], 문자열을 받아올 표준스트림 포인터) 위와 같은 한 줄로 나열하여 보았을때는 쉽게 이해가 .. 2016. 11. 18.
[C언어]문자열 2개 합치기 (How to concatenate 2 strings?) 어떻게 2개의 문자열을 이어 붙일 수 있을까? (How to concatenate 2 strings?) 오늘 간략하게 이야기해볼 주제는 2개의 문자열을 합치는 방법이다. 숫자가 아닌 문자열 2개를 연결하여(Concatenate) 나타내고 싶을때 어떠한 방법을 사용할 수 있을까? 먼저 concat이라는 함수를 정의해 준다. concat함수 안에는 2문자열의 길이를 정하기 위해 malloc 함수를 통해 메모리에 동적할당을 하고, memcpy함수를 통해 두 문자열을 이어 붙인다. main함수에는 두 문자열을 입력받기 위해 배열 A, B를 설정하고 fgets함수로 배열에 문자열을 저장한다. 마지막으로 char* s = concat(A, B);을 통해 이어진 두 문자열을 출력함을 확인한다. 1 2 3 4 5 6 .. 2016. 11. 18.
[C언어]문자열을 txt파일을 hex로 변환하여 배열에 저장하기 ​ ​txt파일에 저장된 5d f2 a5 2c 06 c2 0a 등과 같은 16진수(Hexadecimal)값을 불러와 배열에 저장하고 싶다면 어떻게 해야할까? ​ 쉽게 말해, 메모장(.txt)에 저장된 5df2a52c06c20a 문자열 값을 16진수로 변환하여 다음과 같이 배열에 저장하려고 하는 작업입니다. ​ unsigned char hexadeciaml[] = {0x5d, 0xf2, 0xa5, 0x2c, 0x06, 0xc2, 0x0a} . ​이와 같은 자료를 찾게 된 이유는 txt에서 데이터 값을 불러올 때 5df2a52c06c20a를 16진수가 아닌 문자열로 인식하여 문제가 발생하였기 때문이고, 이를 해결하기 위해 서는 16진수로 변환하여 컴파일러에서 16진수로 인식가능하게 만들어줘야 합니다. 1 2.. 2016. 11. 9.