C 언어 튜토리얼: 숫자를 한 줄씩 읽는 방법

C 언어 튜토리얼: 숫자를 한 줄씩 읽는 방법

C 언어 프로그래밍 개발에서는 문자열이나 텍스트 파일을 처리하고 거기에서 숫자를 추출해야 하는 경우가 많습니다. 이 글에서는 초보자들이 숫자를 더 잘 이해하고 사용할 수 있도록 한 줄씩 숫자를 읽는 방법을 소개합니다.

C 언어에서 숫자를 한 줄씩 읽는 방법

I. 소개

숫자는 컴퓨터 프로그래밍에서 중요한 역할을 하며 다양한 응용 분야에서 사용됩니다. 문자열이나 텍스트 파일을 처리할 때 숫자를 추출하고 계산이나 기타 작업을 수행해야 합니다. 숫자를 한 줄씩 읽는 것은 일반적인 요구 사항이며 이를 달성하는 몇 가지 방법을 소개하겠습니다.

2. sscanf 기능을 사용하세요

sscanf 함수는 C 언어에서 일반적으로 사용되는 문자열 서식 지정 함수로, 문자열에서 지정된 형식의 데이터를 추출할 수 있는 scanf 함수와 유사합니다. 숫자를 한 줄씩 읽으려면 fgets 함수와 함께 sscanf를 사용할 수 있습니다.

#포함하다

정수 메인() {

문자 라인[100];

파일 *파일 = fopen(\data.txt\ \r\

while (fgets(라인, sizeof(라인), 파일)) {

int 여부;

if (sscanf(line, \d\ &num) == 1) {

printf(\읽은 번호: %d\

\ 번호);

}

}

fclose(파일);

0을 반환합니다.

}

위 코드에서는 data.txt라는 텍스트 파일을 열고 fgets 함수를 사용하여 파일 내용을 한 줄씩 읽어서 라인 문자 배열에 저장합니다. 그런 다음 sscanf 함수를 사용하여 줄의 숫자를 추출하고 이를 num 변수에 저장합니다. 추출이 성공하면 후속 작업을 진행할 수 있습니다.

3. strtol 기능을 사용하십시오

strtol 함수는 C 언어의 문자열을 정수로 변환하는 함수이며 강력한 기능을 가지고 있습니다. strtol 함수를 사용하여 숫자를 한 줄씩 읽고 오류를 처리할 수 있습니다.

#포함하다

#포함하다

정수 메인() {

문자 라인[100];

파일 *파일 = fopen(\data.txt\ \r\

while (fgets(라인, sizeof(라인), 파일)) {

char *endptr;

긴 숫자 = strtol(line, &endptr, 10);

if (line != endptr) {

printf(\읽은 번호: %ld\

\ 번호);

}

}

fclose(파일);

0을 반환합니다.

}

위 코드에서 strtol 함수의 첫 번째 매개변수는 변환할 문자열이고, 두 번째 매개변수는 문자열의 끝을 가리키는 포인터로 함수 호출 후 변환된 문자열의 다음 문자를 가리킨다. 세 번째 매개변수는 base이고 여기서는 10진수입니다. endptr이 line과 같은지 여부를 판단하여 변환이 성공적인지 여부를 판단할 수 있습니다.

4. 정규식을 사용하세요

정규식은 강력한 패턴 일치 도구입니다. C 언어에서는 정규식에 대한 지원이 regex.h 헤더 파일을 통해 제공됩니다. 정규식을 사용하여 숫자를 한 줄씩 일치시키고 추출할 수 있습니다.

#포함하다

#포함하다

정수 메인() {

문자 라인[100];

파일 *file = fopen(\data.txt\ \r\ regex_t regex;

regcomp(®ex, \0-9]+\ REG_EXTENDED);

while (fgets(라인, sizeof(라인), 파일)) {

regmatch_t 일치;

if (regexec(®ex, line, 1, &match, 0) == 0) {

int start = match.rm_so;

int end = match.rm_eo;

문자 번호[끝 - 시작 + 1];

strncpy(숫자, 줄 + 시작, 끝 - 시작);

숫자[끝 - 시작] = '\0';

printf(\읽은 번호: %s\

\ 번호);

}

}

regfree(®ex);

fclose(파일);

0을 반환합니다.

}

위 코드에서는 먼저 regcomp 함수를 사용하여 정규식을 컴파일한 다음 루프에서 regexec 함수를 사용하여 일치를 수행합니다. 일치가 성공하면 regmatch_t 구조의 rm_so 및 rm_eo 멤버를 통해 일치의 시작 및 종료 위치를 얻어 숫자를 추출할 수 있습니다.

5. 요약

숫자를 한 줄씩 읽는 것은 C 언어 프로그래밍의 일반적인 요구 사항입니다. 이 기사에서는 이 기능을 수행하는 몇 가지 방법을 소개합니다. sscanf 함수, strtol 함수 또는 정규식을 사용하여 쉽게 숫자를 추출하고 후속 작업을 수행할 수 있습니다. 이 글을 통해 독자들이 C 언어에서 숫자를 한 줄씩 읽는 방법을 더 잘 이해하고, 실제 프로젝트에서 유연하게 사용할 수 있기를 바랍니다.
코드의 일부는 https://www.ktiao.com/c/2023-08/254255.html에서 전송됩니다.

Je suppose que tu aimes

Origine blog.csdn.net/qq_42151074/article/details/132271105
conseillé
Classement