출력 또는 입력을 스캔할 때 포맷 문자열의 포맷 지정자 구문을 이해합니다.

포맷 함수를 위한 포맷 지정자 구문

포맷 함수는 전체 포맷 지정자 구문을 사용합니다:

%[$][-][+][#][^][0][폭][.정밀도∥_유효 숫자][{단위}][<임베디드 시간 포맷>]변환 코드

여기에서

  • 폭은 0보다 큰 숫자이어야 합니다
  • 정밀도 또는 유효 숫자는 0보다 크거나 같아야 합니다.
노트
  • 이중 괄호 []는 옵션 원소를 나타냅니다. 특정 구문 원소에서 이를 요구하는 경우가 아니면 포맷 지정자에 리터럴 [] 문자를 포함할 필요가 없습니다.
  • ∥은 .정밀도 또는 _유효 숫자를 사용하기로 결정한 경우, 둘 중 하나를 선택해야 한다는 것을 나타냅니다.
  • 구문의 텍스트를 적절한 구문 원소로 대체합니다.

스캔 함수를 위한 포맷 지정자 구문

스캔 함수는 단순화된 포맷 지정자 구문을 사용합니다:

%[폭]변환 코드

이 때 폭은 반드시 제로보다 큰 숫자여야 합니다.

노트
  • 이중 괄호 []는 옵션 원소를 나타냅니다. 포맷 지정자에 리터럴 [] 문자를 포함할 필요는 없습니다.
  • 구문의 텍스트를 적절한 구문 원소로 대체합니다.

포맷 지정자 구문 원소

포맷 지정자는 LabVIEW 함수가 입력 문자열을 해석하고 출력 문자열을 생성하는 방법을 정의하는 특정 구문 원소를 지원합니다. 필요한 출력 문자열을 생성하는데 사용하는 포맷 지정자 구문을 이해합니다.

% 구분 문자

포맷 지정자를 시작하는 필수 원소.

문자열로 포맷, 파일로 포맷, 문자열로부터 스캔, 파일로부터 스캔 함수는 확장 가능합니다. 이러한 함수는 포맷 문자열에서 함수의 각 입력 또는 출력에 대해 하나의 포맷 지정자를 사용할 수 있습니다.

  • 포맷 문자열의 포맷 지정자 개수는 함수의 인수 개수와 일치해야 합니다.
  • 포맷 문자열 입력에 여러 포맷 지정자를 지정하려면, 각 포맷 지정자를 %로 나타냅니다.

변경자

선택적 변경자 원소를 사용하여 포맷 문자열이 생성하는 출력을 상세화합니다.

구문 원소 포맷 함수 또는 스캔 함수 설명
$ 포맷팅 변수를 디스플레이할 순서를 지정합니다. 변수의 순서를 나타내는 자릿수를 이 변경자 바로 앞에 포함시킵니다.
- 포맷팅 오른쪽 맞춤하는 대신 해당 폭 내에서 파라미터를 왼쪽 맞춤합니다.
+ 포맷팅 숫자가 양수일 때에도 부호를 포함합니다.
^ 포맷팅
  • e 또는 g 변환 코드와 함께 사용되는 경우, 공학적 표기법으로 숫자를 포맷합니다. 공학적 표기법에서 지수는 항상 3의 배수입니다.
  • T와 함께 사용될 때, 시간을 세계시로 포맷합니다.
# 포맷팅 뒤따르는 제로를 제거합니다. 숫자가 소수 부분을 가지고 있지 않다면, 이 변경자는 또한 설명 부분을 제거합니다.
0 포맷팅 - 변경자 없이 사용하는 경우, 최소 폭에 도달하도록 숫자형 파라미터의 왼쪽에 있는 남는 공간을 공백 대신 0으로 채웁니다.
폭
  • 포맷팅
  • 스캔하기
  • 포맷 함수: 폭은 출력의 최소 문자 필드 폭을 지정합니다. 이 폭은 최대 폭이 아닙니다. LabVIEW는 파라미터를 잘라낼 수가 없기 때문에 포맷하기 위해 필요한 많은 문자를 사용합니다. LabVIEW는 자리맞춤에 따라 파라미터의 왼쪽 또는 오른쪽 필드를 공백으로 채웁니다. 폭이 없거나 0이면, 출력은 변환된 입력 파라미터를 포함하기 위해 필요한 만큼만 길어집니다.
  • 스캔 함수: 폭은 사용할 최대 문자 필드 폭을 지정합니다. LabVIEW는 파라미터를 처리할 때 최대 문자 개수를 스캔합니다.
.정밀도 또는 _유효 숫자 포맷팅 표시되는 자릿수를 제어하며, 여기서 정밀도 또는 유효 숫자는 숫자입니다.
노트 하나의 포맷 지정자에서 정밀도와 유효 숫자를 함께 사용할 수 없습니다.
  • .정밀도: 숫자는 소수점 오른쪽의 자릿수에 대한 정밀도 지정자입니다. .정밀도는 소수점 오른쪽의 자릿수에만 영향을 미칩니다. .정밀도는 다음과 같은 특별한 상호작용이나 값을 가집니다:
    • 부동소수 표기법: 이 원소는 소수점 오른쪽의 자릿수를 지정합니다.
    • .이 나타나지 않았다면, LabVIEW는 여섯 자릿수의 정밀도를 사용합니다.
    • .이 0이면, LabVIEW는 정밀도를 삽입하지 않습니다.
    • 문자열 파라미터와 함께 사용: 스캔 필드의 최대 폭을 지정합니다. LabVIEW는 이 길이보다 길게 문자열을 잘라냅니다.
  • _유효 숫자: 숫자는 디스플레이 포맷에서 사용할 유효 숫자의 개수입니다. 데이터를 지정한 자릿수로 반올림하여 디스플레이합니다. LabVIEW는 디스플레이 목적으로만 데이터를 반올림하며, 원 데이터에는 영향을 주지 않습니다. 간격이 없는 모든 숫자를 포함합니다. 예:
    • 3.457은 4개의 유효 숫자를 가집니다.
    • 0.0012은 2개의 유효 숫자를 가집니다.
    • 123000은 3개의 유효 숫자를 가집니다.

    NI는 유효 숫자를 숫자의 타입에 따라 다음 값으로 설정할 것을 권장합니다:

    • 단정도 부동 소수점 수: [1, 6]
    • 배정도 및 확장 정밀도 부동소수: [1, 13]
{단위} 포맷팅 물리량(단위와 연관된 값)을 변환하는 함수를 사용할 때 VI의 원래 단위를 덮어씁니다. 반드시 적합한 단위를 사용해야 합니다.
노트 이 구문 원소는 [문자열로 포맷] 함수에서만 사용할 수 있습니다.
<임베디드 시간 포맷> 포맷팅 T (절대 시간) 및 t (상대 시간) 변환 코드와 함께 사용할 수 있도록 시간 특정 포맷 문자열을 포함합니다. 유효한 임베디드 시간 포맷 문자열은 시간 특정 포맷 코드을(를) 참조하십시오.

변환 코드

파라미터를 스캔 또는 포맷하는 방법을 지정한 문자입니다. 스캔 함수와 포맷 함수 모두에 필요한 원소.

변환 코드는 주로 특정 타입의 데이터로 작동하지만 여러 타입의 데이터를 해석할 수 있습니다.

숫자에 대한 변환 코드

변환 코드 지원되는 숫자형 설명
x
  • 정수
  • 고정 소수점 수
16진 정수 (예를 들면, B8).
o
  • 정수
  • 고정 소수점 수
8진 정수(예를 들면, 701).
b
  • 정수
  • 고정 소수점 수
2진 정수(예를 들면, 1011).
d
  • 정수
  • 고정 소수점 수
부호있는 10진수 정수.
u
  • 정수
  • 고정 소수점 수
부호없는 10진수 정수.
f
  • 부동소수
  • 고정 소수점 수
소수점 포맷의 부동소수(예를 들면, 12.345).
e
  • 부동소수
  • 고정 소수점 수
과학적 표기법의 부동소수(예를 들면, 1.234E1).
g
  • 부동소수
  • 고정 소수점 수
자동 포맷. 숫자의 지수에 따라 f 또는 e를 사용합니다.
  • 지수가 -4보다 크거나 지정된 정밀도보다 작음: f 사용
  • 지수가 -4보다 작거나 지정된 정밀도보다 큼: e 사용
p
  • 부동소수
  • 고정 소수점 수
SI 표기법의 부동소수.
노트 숫자에 대한 변환 코드는 다음과 같이 다른 데이터 타입을 해석할 수 있습니다:
  • 불리언: 0은 거짓, 1은 참
  • 열거형: 열거형 아이템의 숫자형 인덱스 값을 해석합니다.

문자열의 변환 코드

변환 코드 설명
s 문자열(예를 들면, abc)
  • 스캔할 때, s는 다음에 화이트 스페이스 문자가 나타날 때까지 일치됩니다.
  • 공간은 하나 또는 그 이상의 연속적인 화이트 스페이스 문자와 일치됩니다. 문자열을 스캔할 때 화이트 스페이스를 포함한다면, 변환 코드 설정에서 문자를 사용합니다. 공백 또는 다른 화이트 스페이스 문자를 포함하여 문자열에 포함될 수 있는 모든 문자를 괄호 안에 지정합니다.
[ ] 세트 문자: 괄호 사이에 지정된 문자만을 포함하는 문자열과 일치합니다.
노트 [ ] 변환 코드는 문자열을 스캔할 때만 유용하며, 문자열을 포맷팅할 때는 유용하지 않습니다.

문자는 대소문자를 구별합니다.

다음 문자는 [ ] 변환 코드 내에서 특별한 의미를 가집니다:

  • 세트에 포함된 문자의 범위를 지정합니다: 범위를 둘러싼 문자 사이에 하이픈(-)을 사용합니다.

    리터럴 하이픈을 일치시키기 위해, 세트에서 첫번째 또는 마지막 문자로 지정합니다.

  • 세트에 지정된 문자 중 하나가 처음 일치할 때까지 스캔합니다. 여는 괄호 [ 바로 뒤에 캐럿 기호 ^를 첫 문자로 입력합니다.

    리터럴 카렛 기호와 일치하려면, 카렛을 세트 내의 다른 위치에 놓습니다.

다음 예제는 변환 코드 세트에서 문자의 사용을 보여줍니다.

  • %[aeiou]―소문자 모음만을 포함하는 모든 문자열과 일치합니다.
  • %[0-9a-zA-Z ]: 숫자, 문자, 또는 공백을 포함하는 문자열과 일치합니다.
  • %[^,;]: 함수가 첫번째 쉼표 또는 세미콜론을 찾을 때까지 문자열을 스캔합니다.
노트 s는 다음과 같이 다른 데이터 타입을 해석할 수 있습니다:
  • 불리언: 거짓과 참을 해석합니다.
  • 열거형: 열거형 아이템의 문자열 라벨을 해석합니다.
  • DAQmx 채널 또는 VISA 리소스 이름과 같은 이름있는 참조 번호
  • 경로

시간에 대한 변환 코드

변환 코드 설명
T 절대 시간. T는 숫자형 또는 타임스탬프 컨트롤, 상수, 인디케이터의 디스플레이 포맷 프로퍼티뿐만 아니라 문자열로 포맷, 파일로 포맷, 문자열로부터 스캔 및 파일로부터 스캔 함수에서 사용합니다.
노트 T는 배열을 스프레드시트 문자열로, 스프레드시트 문자열을 배열로, 포맷 값, 스캔 값 함수와 함께 사용할 수 없습니다.

타임스탬프를 시간이 아닌 다른 것으로 포맷하면 에러가 반환됩니다.

t 상대 시간입니다. t는 숫자형 또는 타임스탬프 컨트롤, 상수, 인디케이터의 디스플레이 포맷 프로퍼티뿐만 아니라 문자열로 포맷, 파일로 포맷, 문자열로부터 스캔, 파일로부터 스캔 함수에서 사용합니다.
노트 t는 배열을 스프레드시트 문자열로, 스프레드시트 문자열을 배열로, 포맷 값, 스캔 값 함수와 함께 사용할 수 없습니다.

타임스탬프를 시간이 아닌 다른 것으로 포맷하면 에러가 반환됩니다.

노트 T는 타임스탬프와 숫자형을 해석할 수 있습니다. t는 숫자형만 해석할 수 있습니다.

현지화 코드

LabVIEW에서 숫자의 정수 부분과 소수 부분을 구분할 때 마침표(.)와 쉼표(,) 중 무엇을 사용할지 지정하는 선택적 시퀀스입니다.

이 코드는 상수 출력을 위한 소수점을 컨트롤합니다. 이 코드는 어떠한 입력 또는 출력을 발생시키지 않습니다. 다음 %;를 찾을 때까지 모든 입력과 출력의 소수점을 변경합니다.

표 5. 포맷 지정자를 위한 현지화 코드
현지화 코드 설명
%,; 쉼표 소수점.
%.; 마침표 소수점.
%; 시스템 기본 분리자 분리자를 지정하지 않으면, LabVIEW는 시스템 기본 분리자를 사용합니다.

리터럴 문자

입력 문자열에 문자를 추가하려면, 포맷 문자열에 리터럴 문자를 추가할 수 있습니다. 포맷 문자열에서 이스케이프 시퀀스를 사용하여 특정 문자를 삽입할 수 있습니다.

표 6. 포맷 지정자를 위한 문자 이스케이프
이스케이프 시퀀스 출력 설명
%% % 포맷 지정자의 시작을 정의하는 % 구분 문자와 충돌하지 마십시오.
\> > 임베디드 시간 포맷 변경자를 끝내는 > 구분 문자와 충돌하지 마십시오.
'\' 코드 백슬래쉬 코드에 따라 다름 16진수 값, 스페이스, 백스페이스 및 그 외 포맷 옵션을 지정하는 문자 시퀀스.

백슬래쉬 코드에 대한 더 자세한 정보는 백슬래쉬('\') 코드 디스플레이을(를) 참조하십시오.

포맷 지정자 구문 예제

실제 예제를 통해 LabVIEW 포맷 지정자가 입력 인수를 출력 문자열로 변환하는 방법을 이해합니다.

자동 포맷팅 (%g) 예

인수 포맷 문자열 결과 문자열
12.00 %#g 12
12000000 %#g 1.2E+7

#으로 지정했다면, LabVIEW는 뒤따르는 제로를 제거합니다.

g를 지정했다면, LabVIEW는 포맷할 숫자의 지수를 기준으로 과학적 표기법 또는 부동소수 표기법을 선택합니다.

10진수 (%d) 예제

인수 포맷 문자열 결과 문자열
12.67 score= %d%% score= 13%

%d를 지정하면, LabVIEW는 정수를 10진법으로 디스플레이합니다.

  • 비트 크기에 제한 없이 부호있는 정수 또는 부호없는 정수이면, LabVIEW는 정수를 수정하지 않고 그대로 디스플레이합니다.
  • LabVIEW는 부동소수 값을 부호있는 64비트 정수로 반올림합니다. NaN과 부호있는 64비트 정수의 최대값보다 큰 값은 부호있는 64비트 정수의 최대값인 9223372036854775807로 반올림됩니다. 부호있는 64비트 정수의 최대값보다 큰 값을 기록하려면, [부호없는 쿼드 정수로] 함수를 사용하여 명시적으로 해당 값을 부호없는 64비트 정수로 캐스트해야 합니다.

부동소수(%f)의 예

인수 포맷 문자열 결과 문자열
12.67 온도: %5.1f 온도: 12.7
12.67 N %5.3f 12.670 N
12.67 N %5.3{mN}f 12670.000 mN
12.67 N %5.3{kg}f 12.670 ?kg
  • 포맷 문자열의 5는 폭을 5로 지정합니다. . 뒤의 숫자는 소수점 오른쪽의 자릿수, 즉 정밀도를 지정합니다.
  • 단위는 [문자열로 포맷] 함수를 사용해야만 유효합니다. 단위를 가진 예제는 포맷 지정자가 물리량과 어떻게 상호작용하는지 보여줍니다.
    • 하나의 단위를 다른 단위로 변환할 수 있습니다.
    • 물음표 표시는 포맷 지정자의 단위가 입력 단위와 충돌이 일어났음을 알려줍니다.

과학적 표기법 (%e) 예

인수 포맷 문자열 결과 문자열
12.67 %.3e 1.267E+1
12.67 %^.3e 1.2670E+0

^를 추가하여 지수가 항상 3의 배수인 공학적 표기법으로 변경할 수 있습니다.

SI 표기법 (%p) 예

인수 포맷 문자열 결과 문자열
12000000 %.2p 12.00M
12000000 %_2p 12M
  • .2의 값은 결과 문자열에서 2 자릿수의 정밀도로 나타나도록 지정합니다.
  • _2의 값은 결과 문자열에서 2개의 유효숫자로 나타나도록 지정합니다.
  • %p 코드는 SI 접두어를 추가합니다.

16진 (%x), 8진 (%o), 2진 (%b)의 예

인수 포맷 문자열 결과 문자열
12 %02x 0C
12 %06o 000014
12 %b 1100

b(바이너리)는 밑이 2입니다. o(8진수)는 밑이 8입니다. x(16진수)는 밑이 16입니다.

  • - 변경자를 사용하여 결과 문자열을 왼쪽으로 자리맞춤할 수 있습니다.
  • 0 변경자는 결과 문자열을 제로로 채우도록 나타냅니다.
  • 포맷 지정자의 자릿수는 결과 문자열의 폭을 지정합니다.

예를 들어, 변경자 -n은 결과 문자열을 n 폭의 스페이스로 채웁니다.

상대 시간 (%t) 예

인수 포맷 문자열 결과 문자열
91.80 %.2t 01:31.80
91.8 %<시간:%H 분:%M 초:%S>t 시간:00 분:01 초:31

LabVIEW 경과 시간을 다음과 같이 포맷합니다:

  • 완료된 주 (%W)
  • 완료된 일 (%D)
  • 전체 시간 (%H)
  • 완료된 분 (%M)
  • 완료된 초 (%S)
  • 초의 분수 (%자릿수u)

임베디드 시간 포맷 코드에 대한 더 자세한 정보는 시간 특정 포맷 코드을(를) 참조하십시오.

절대 시간 (%T)의 예

인수 포맷 문자열 결과 문자열
20014년 1월 1일 오전 00:00:00.000 (세계시) %<%.3X %x>T 12:00:00.000 AM 01/01/2001
20014년 1월 1일 오전 00:00:00.000 (세계시) %<%Y.%m.%d>T 2001.01.01
20014년 1월 1일 오전 00:00:00.000 (세계시) %^<%.3X %x>T 06:00:00.000 AM 12/31/2000

%T는 절대 시간을 지정합니다.

  • 임베디드 시간 포맷(<와 > 사이) 내에 포함하는 모든 정보는 절대 시간을 포맷하는 방법을 나타냅니다. 임베디드 시간 포맷 코드에 대한 더 자세한 정보는 시간 특정 포맷 코드을(를) 참조하십시오.
  • 구두점을 포함한 포맷은 컴퓨터의 지역 셋팅에 따라 변경됩니다. 시간은 컴퓨터에 설정된 표준 시간대에 따라 변경됩니다.
  • ^을 추가하여 시간을 세계시로 포맷합니다.

문자열 (%s)의 예

인수 포맷 문자열 결과 문자열
Smith John 이름: %s, %s. 이름: Smith, John.
Hello, World 문자열: %10.6s 문자열: Hello,
  • %s은 포맷팅과 스캔에 모두 유효합니다. 문자열과 파일 모두에 %s을(를) 사용할 수 있습니다.
  • 첫 번째 예에서, 포맷 문자열은 여러 포맷 지정자를 사용합니다. 이 결과를 얻으려면 다음 단계를 따르십시오:
    • 문자열로 포맷의 입력 1에 성(Smith)을 제공합니다.
    • 함수의 아래쪽을 클릭하고 끌어서 문자열로 포맷을 확장하여 두번째 입력을 추가합니다. 결과로 생성된 입력 2에 이름(John)을 제공합니다.
    • 제공된 포맷 문자열을 입력합니다. 포맷 문자열이 두 개의 % 구분 문자를 포함하기 때문에, 포맷 문자열은 두 개의 포맷 지정자를 포함합니다. 포맷 문자열의 포맷 지정자 개수는 함수의 입력 개수와 일치해야 합니다. LabVIEW 포맷 지정자의 일부가 아닌 문자를 리터럴 텍스트로 해석하여 결과 문자열에 추가합니다.
  • 두 번째 예에서, .6는 문자열의 정밀도를 컨트롤합니다. .6은 문자열 Hello, World에서 최대 6개의 문자를 사용하도록 지정합니다. 10은 폭입니다: LabVIEW는 전체 문자열 길이가 10이 되도록 문자열을 공백으로 채웁니다.

변수 순서 (%$)의 예

인수 포맷 문자열 결과 문자열
Smith John %2$s %1$s John Smith

이 예제에서, 스미스는 첫번째 변수이고 존은 두번째 변수입니다.

  • 특정 변수의 포맷 문자열에 $를 사용하는 경우, $가 앞에 오지 않는 이후의 구문 원소는 다음 변수에 적용됩니다.
  • 변수에 $를 사용할 때 가독성을 향상시키려면, 문자열의 다른 변수에 $를 사용합니다.

리터럴 퍼센트 문자 예 (%%)

인수 포맷 문자열 결과 문자열
빈 인수 %% %

%%은(는) 문자열로 포맷 또는 문자열로부터 스캔 함수에 터미널을 추가하지 않습니다.