내 것을 알고 있다 '' 왜 'string' 의 멤버인지 표준용량 네임스페이스인 산아래의 정보정의다음 발생합니까?
#include <iostream>
int main()
{
using namespace std;
string myString = "Press ENTER to quit program!";
cout << "Come up and C++ me some time." << endl;
printf("Follow this command: %s", myString);
cin.get();
return 0;
}
프로그램이 실행될 때마다 ',' 미스트링 인쇄합니다 무순서 문자열이어야 같이 보이는 3 명의 캐릭터를 출력물에는 명이다.
[1]: http://www.amazon.ca/c-primer-plus-stephen-prata/dp/? 키드 = = = 0321776402, 1338670903, sr = 8-1 & utf8& /ref sr_1_1 ie
이후 이 문제를 해결하려면 가장 쉬운 방법은 you& # 39 는 일반적으로 '을 (를)', '이후, 인쇄, re flexlm*용 c++컴파일러는 표준용량 코트 표준용량 구체화하십시오 통해' 汲摹窍妨绰 版快俊绰 연산자 오버로딩을:
std::cout << "Follow this command: " << myString;
어떤 이유로든 푸십시오 필요한 경우 c 스타일 문자열이어야 c_str 방법을 사용할 수 있습니다 ' ()' 즉 'const char *' '수' 표준용량 구체화하십시오 null 종료. 사용 예제:
#include <iostream>
#include <string>
#include <stdio.h>
int main()
{
using namespace std;
string myString = "Press ENTER to quit program!";
cout << "Come up and C++ me some time." << endl;
printf("Follow this command: %s", myString.c_str()); //note the use of c_str
cin.get();
return 0;
}
즉, 함수 printf '안전' 같은 스케쳐내 바리아디스 템플릿일 들여다 볼 수 있지만, 유형 (C++11 에서, 모든 주요 컴파일러에도 vmware. 므스티스 12). 한 예로 볼 수 있습니다 ([here] https://web.archive.org/web/20131018185034/http ://www.generic-programming.org/ ~ dgregor/cpp/variadic-templates.html). # 39 의 표준 라이브러리에 존재하는 there&; s 아무것도아니야 그러니까말이야 그렇게 있을 수 있지만, 특히 구현됩니까 향상시키십시오 에서 ['부스트 형식'] (http://www.boost.org/doc/libs/1_49_0/libs/format/).
[1]: 즉, 임의의 수의 인수만 함수은 의존하고 있지만 전달할 수 있습니다 이 인수만 그 수와 종류를 알 수 있습니다. 즉, printf '의 경우' 와 'like' %d. 문자열으로 인코딩되지 타입 정보 마무리라뇨 'int'. 문자 또는 번호, 하나님에 대해 경우 주님으로부터그에게 표준 방법이 있지만, 일부 기능을 가지고 있을 경우 경고를 주고 vmnet 컴파일러에도 확인할 수 있습니다.
'코트 사용하여 < <; your_string, '를 사용할 수 있습니다. 파선-짧은, 간편하고 메리 파이퍼. # 39, re 먹어서나 c,c++, 일반적으로는 실제로 you& 때 피하고 싶어하는 '-' s a, C # 39 에서 printf 완전히 it& # 39 의 잔여 that& 또는 데 c++컴파일러는 필요가 없었다.
표준용량 로케일에 loc (" ";). std::cout.imbue (loc).
표준용량 코트 < <; 123456.78.
네임리스 로케일에 (이 " ";) # 39 의 구성에 따라, user& 로케일에 선택. 따라서 이 'on my 시스템 (구성된 미국 영어) 로 를출력합니다 123,456.78'. 누군가가 자신의 컴퓨터에 대한 구성되어 있다 (예) ',' 123.456,78 인쇄하십시오 아웃해야 독일 같은 일이 있지 않을까 생각한다 "고 말했다. 누군가를 위한 것이라는 '로 구성된 이 객체에는 인도 인쇄하십시오 아웃해야 1.23,456.78' (물론 다른 많다). Printf (를) '' 저도 정확히 하나의 결과:. '123456.78'. 하지만 이 모든 사람들에게 일관되게 잘못된 # 39 의 일관성입니까 it& 변경됩니다. 이는 근본적으로 해결할 수 있는 유일한 방법은 별도로 할 수 있기 때문에, 그 결과 '서식' 전달하십시오 문자열로 printf 가 아닌 단순히 'printf' 자체가 작업을 수행할 것입니다. 4. # 39, re 꽤 있지만, '매우' 형식으로 printf they& 컴팩트형 문장열 읽을 수 없는 수 있습니다. C 프로그래머가 사이에서도 거의 매일 이용하는 것, d ',' printf I& 최소 99% # 39 위로 '#' 에서 '어떤 것을 할 것이라고 볼 수 있도록 하는 이 x' 와 '# % # % # 뭐로부터요 고말은, 어떻게' 에서 'f' 는 (및 짓궂군요 셨으며 완전히 다른 예, 그렇습니다.).
'사용' 스케쳐내 c-같은 myString.c_str () 는 문자열 (const char * '') 를 사용하여 printf
감사합니다
Printf 실제로 양호한 경우 사용할 크기를 중요하지 않다. 프로그램 실행, 메모리 문제가 있는 경우 그 의미가 매우 좋은 printf 실제로 / go-dell 평가자 솔루션입니다. 본질적으로 교대로 걸리는 반면, 코트 통한 비트 공간을 마련하기 위해 문자열이어야 의 printf 그냥 일종의 매개변수입니다 및 유인물 迈向 화면. 조교하실 컴파일하십시오 경우 단순한 hello world 프로그램은, printf 수 있을 것으로 보고 그 반대로 컴파일하십시오 60 여개 미만의, 000 비트, 백만 이상의 비트 컴파일하십시오 코트 것이라고 밝혔다.
현재 상황에서 id 를 사용하는 것이 훨씬 더 편리하게 사용할 수 있기 때문에 단순히 제안하세요 코트. 하지만 저는 printf 가 알 수 있는 좋은 일이 될 것이라고 주장한다.
무엇보다 중요한 요소라고 할 수 있는 c++컴파일러는 문자열은 구조체입니다 현재 길이 아니라 주소를 포함하는 일련의 값이 0 자 끝나는 바이트입니다. Printf 및 그 가족 등 찾을 수 있을 만큼 인해 혼란을 겪고 확보하십시오 써줬지 c++컴파일러는 구조체입니다 시퀀스일 아닙니다.
나를 위해, printf 가 높다고 볼 수 있는 곳이 있다고 믿지만, t # 39 can& 채워야 하는 것처럼 쉽게 html 의 테이블 구조를 가질 수 있는 곳에 can& c++컴파일러는 통사 기능을 쉽게, t # 39 를 이동, 그는 나중에 채워야 다이크스트라 작성했습니까 대한 생각이 있다. # 39 만 t didn& 시작, 종교, 정말 사용할 것을 주장하고 이를 만회하기 위해 클라우지 잘못 설계된 코드입니다.
Gnu 프로젝트의 경우 상당히 좋은 것이 가족을 g++ 확장명은 printf 추가해야 한다.
printf '' 가변 개수의 인수만 받아들입니다. Plain Old 데이터 (POD) 그 유형이 있을 수 있습니다. 컴파일러는 컴파일할 수 있기 때문에 '만' 코드 전달되는 이외의 POD 는 사용자의 형식으로 printf 그러겄지 있나 '각' %s 인수를 포인터입니다 챨 'a' 되어야 하는 것을 의미한다. Const char '' 아니다 '는' 고객의 경우 표준용량 구체화하십시오. printf '때문에' 언약보다는 안단말이야 인수 유형 댁이라면 손실됩니다 리스토어된 되어야 하는 형식을 통해 매개변수입니다. 그 때 const char '결과' 에 '는' 인수를 선반가공 표준용량 구체화하십시오 포인터입니다 가리키십시오 관련이 없는 대신 일부 메모리 영역으로 원하는 대로 캜 구체화하십시오. 이러한 이유로 코드에 를출력합니다 횡설수설.
Printf '동시에' 는 훌륭한 솔루션으로서의 서식 있는 텍스트 인쇄에 아웃해야, (특히 가질 계획인 경우에는 패딩), 이 경우, t # 39 활성화됨 컴파일러와의 개의경고 haven& 위험할 수 있다. 항상 이렇게 쉽게 피할 수 있기 때문에 그런 실수를 개의경고 활성화하십시오 있다. 표준용량 코트 어색한 이유가 없다 '' 장치를 사용할 수 있는 '가족' 같은 작업을 할 수 있는 경우 printf 훨씬 빠르고 이쁘게 것입니다. 그냥 smartupdate 활성화했는지 모든 개의경고 ('벽 - wextra') 와 좋을 것입니다. Printf 사용할 경우 사용자 정의 '와' '' 이 있는 메커니즘을 attribute 구축현 너희가운데 합니다 컴파일러가 포맷 스트링 아니했으니 매개변수입니다 확인할 수 있도록 제공된.