문제

다음을 상상해보십시오.

당신은 문자열로 읽습니다 scanf() 그러나 문자열에 몇 가지 데이터 포인트 만 있으면됩니다.

적절한 데이터가 있는지 확인할 수있는 능력을 잃지 않고 외부 정보를 버릴 수있는 쉬운 방법이 있습니까?

예시:

const char* store = "Get: 15 beer 30 coke\n";
const char* dealer= "Get: 8 heroine 5 coke\n";
const char* scream= "Get: f* beer 10 coke\n";

나는 첫 번째 끈을 받아들이고 싶지만 맥주가 유키이기 때문에 맥주를 잊어 버린다. 나는 두 번째와 세 번째 문자열이 7/11에 적합한 목록이 아니기 때문에 거부하고 싶습니다.

그래서 나는 다음 건축에 대해 생각하고있었습니다.

char* bId = new char[16];
char* cId = new char[16];
int cokes;
sscanf([string here], "Get: %d %s %d %s\n", [don't care], bId, &cokes, cId);

이런 식으로 나는 형식 확인을 유지하지만 컴파일러를 흔들지 않는 [신경 쓰지 말고] 무엇을 넣을 것인가?

물론 나중에 사용하지 않는 변수를 만들 수는 있지만이 질문의 요점은 아닙니다. 또한 왼쪽과 오른쪽을 별도로 점검하는 것은 내가 여기서 찾고 있지 않은 확실한 솔루션입니다.

그렇다면 신경 쓰지 않고 여전히 Scanf와 친구의 끈 조각 유형을 확인할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

% After % AT AT AT AS AT AT ATHENTMENT 억제 문자 사용

예시:

  sscanf([string here], "Get: %*d %s %d %s\n", bId, &cokes, cId);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top