2009-09-03 7 views
-1

fprintf는 어떻게 작동합니까? 내가 쓰는 경우fprintf는 C++에서 어떻게 작동합니까?

fprintf(outfile, "test %d %d 255/r", 255, 255);

그것은 무엇을 의미 하는가? outfile은 출력 파일의 이름 my라는 것을 알고 있습니다. 다른 값은 무엇을 의미합니까?

+5

또한 첫 번째 매개 변수에 대해 잘 알고 있어야합니다. 출력 파일의 * 이름 *에 "outfile"이 없습니다. – innaM

+6

"fprintf"google 검색의 첫 번째 결과는 그것에 대해 모든 것을 말해 줬을 것입니다. – DaClown

+7

사실,하지만 * * 토론이 다음 사람을 위해 Google에 표시 될 수 있습니다. 그 찌푸린 얼굴을 가지고 거꾸로 돌려 놓으십시오. –

답변

6

"test %d %d 255/r"은 인수가 될 것이고 (그곳에는 : 255, 255), 정수형으로 예상됩니다. 그리고 그들은 % d 대신에 배치 될 것입니다.

결과로 문자열에 test 255 255 255이 표시됩니다.

자세한 내용은 std::fprintf reference을 참조하십시오.

1

printf과 비슷하지만 출력을 파일로 출력하기 만하면됩니다.

3

첫 번째 매개 변수는 파일 핸들이고 두 번째 매개 변수는 서식 문자열이며 두 번째 매개 변수에서 사용한 형식 지정자 수에 따라 가변 인수가 있습니다.

documentation을 확인하면 요청하는 모든 정보가 포함되어 있습니다.

1

두 번째 인수는 형식 문자열입니다. 추가 인수는 형식. 자열 (이 경우 % d)의 지정자에 대한 매개 변수입니다. printf 스타일 함수에 대한 좋은 소개는 http://www.cppreference.com/wiki/c/io/printf을 확인하십시오.

3

파일 스트림에 대한 형식화 된 출력입니다. 그것은 printf와이하는 것처럼, 차이가 printf와 항상 당신이이 printf 동등한와 같은 것

fprintf(stdout, "test %d %d 255\n", 255, 255); 

을 썼다 stdout.If을 출력한다는 것입니다 작동합니다.

두 번째 인수는 형식 문자열입니다. 형식 문자열은 %s, %d, %x과 같은 형식 지정자를 포함합니다. 내게는 %d 두 개가 포함되어 있습니다. 각 형식 지정자는 fprintf에 해당 인수가 있어야합니다. 당신이 문자열 지정자 (%s) 16 진수 지정자 (%x) 또는 긴/오래 오래 INT 지정자 (%ld, %lld)를 사용할 수 마찬가지로

fprintf(outfile, "Here are two numbers: %d, %d", 4, 5); 

: 당신은 두 %d 지정자를 가지고, 그래서 두 개의 숫자 인수가 있습니다. 다음은 그 목록입니다 : http://www.cppreference.com/wiki/c/io/printf. 그것들은 C 형식의 모든 I/O 함수 (sprintf 및 scanf와 동일)에 대해 동일합니다.

원래 예제에서 "/r"은 문자 그대로 "/r"을 인쇄합니다. 캐리지 리턴 ("\r")을하려고 한 것 같습니다.