파일 입출력과 구조체 데이터 처리 실습
작업 1: 텍스트 파일을 이용한 도서 정보 관리
이 작업에서는 Book 구조체를 정의하고, 도서 목록을 텍스트 파일에 쓰고 다시 읽어오는 과정을 수행한다. 먼저 배열에 저장된 도서 정보를 fprintf()를 사용해 정형화된 형태로 data1.txt에 기록한다.
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 80
#define MAX_BOOKS 100
typedef struct {
...
6월 21일 22:15에 게시됨
C 언어에서 XML 네임스페이스 속성 처리의 5가지 최적화 전략
XML 속성 파싱 시 네임스페이스 문제 해결
XML 문서를 C 언어로 분석할 때, 네임스페이스는 속성 추출 과정에서 중요한 고려사항입니다. 이들은 요소와 속성 이름 충돌을 방지하지만, 잘못된 URI 매핑은 데이터 접근 실패를 초래할 수 있습니다.
네임스페이스 정의 구조
다음 예제는 xmlns 선언을 통해 네임스페이스를 설정하는 방법을 보여줍니다:
<document xmlns:cus ...
6월 18일 22:38에 게시됨
C 언어 구조체와 메모리 정렬, 구조체 배열 사용법
C 언어에서는 서로 다른 데이터 타입을 하나의 단위로 묶어서 관리할 수 있도록 구조체(struct)를 제공합니다.
구조체 선언 및 초기화
구조체는 여러 개의 멤버 변수를 포함할 수 있으며, 각각 다른 타입을 가질 수 있습니다. 구조체를 정의한 후에는 이를 기반으로 변수를 생성하고 값을 할당할 수 있습니다.
#include <stdio.h>
struct StudentInfo {
int ...
6월 17일 23:48에 게시됨
C 프로그래밍 입출력 처리와 논리적 연산 실전 예제
본 섹션에서는 표준 라이브러리를 활용한 데이터 입력 및 출력 처리, 조건부 제어 구조, 그리고 기본적인 수학적 연산 알고리즘에 대한 구현 사례를 다룹니다. 각 예제는 C 언어의 핵심 문법을 적용하여 실제 문제를 해결하는 과정을 보여줍니다.
01. 텍스트 기반 그래픽 출력
콘솔 환경에서 특정 문자 패턴을 구성하고 화면에 출력하는 작업을 수행합니다. 줄바꿈 이스케 ...
6월 15일 19:26에 게시됨
여러 언어로 Hello World 출력하기
실행 환경: macOS
IDE: VSCode + CodeRunner
C
hello_c.c
#include <stdio.h>
int main(void)
{
puts("안녕하세요, C입니다!");
return 0;
}
실행 명령어
gcc hello_c.c -o hello_c && ./hello_c
C++
hello_cpp.cpp
#include <iostream>
int main() {
std::cout << "안녕하세요, C++입니다!" << std: ...
6월 14일 00:58에 게시됨
C 언어 함수 실습 예제 모음
성적 등급 변환 함수정수형 점수를 입력받아 등급 문자를 반환하는 함수를 구현합니다. 10점 단위로 구간을 나누어 A부터 E까지의 등급을 부여합니다.#include <stdio.h>
char calculate_grade(int mark);
int main() {
int mark;
char level;
while (scanf("%d", &mark) != EOF) {
level = calculate_grade(mark);
printf("점수 ...
6월 13일 17:10에 게시됨
Python에서 C로 코드 변환기 구현하기
언어 문법 구조 비교
Python과 C 언어는 근본적인 설계 철학에서 차이를 보입니다. C는 명시적인 선언과 구분자를 요구하는 반면, Python은 들여쓰기 기반의 간결한 문법을 채택했습니다.
C 프로그램은 #include 전처리기 지시문으로 외부 라이브러리를 명시적으로 가져와야 합니다. stdio.h, stdlib.h 등의 표준 헤더가 필수적입니다. Python은 기본 입출력 기능을 내장 ...
6월 12일 16:39에 게시됨
C 언어 입출력 및 형식 지정자 활용 문제
문제 1다음 코드가 실행될 때 입력 데이터가 12345□678인 경우 변수 x, y의 값은 무엇인가?int x;
float y;
scanf("%3d%f", &x, &y);
A. 12345 678.000000B. 123 678.000000C. 123 45.678000D. 123 45.000000해설:%3d는 정수를 읽되 최대 3자리까지만 허용하므로 123이 x에 저장된다. 이후 %f는 남은 부분에서 실수를 찾으려 하지만, 공백 다음에 유효한 실수가 없 ...
6월 11일 20:23에 게시됨
임베디드 환경에서 C 매크로를 활용한 엔디anness 처리 최적화
메모리 내 데이터 배열 방식과 엔디anness 이해
컴퓨터 아키텍처에서는 멀티바이트 데이터가 메모리에 저장될 때 바이트의 순서가 결정되며, 이를 엔디anness (Endianness)라고 부릅니다. 이 개념은 이기종 시스템 간 데이터 통신이나 저수준 드라이버 개발 시 필수적으로 고려해야 할 요소입니다.
빅 엔디안과 리틀 엔디안의 차이
빅 엔디안 (Big-Endian): 가장 높은 유 ...
6월 10일 17:53에 게시됨
C 언어 문자열 함수 직접 구현해보기
구현할 함수: strlen(), strcpy(), strcat(), strcmp(), strstr(), memcpy(), memmove()
1. strlen()
구현 아이디어: 시작 주소부터 문자열을 순회하며 문자 개수를 기록하고, '\0'을 만나면 순회를 중단합니다.
구현 코드:
size_t custom_strlen(const char* str) {
size_t count = 0;
while (str[count] != '\0') {
++count;
}
return count;
} ...
6월 8일 23:37에 게시됨