2017-12-07 24 views
-1

scanf를 사용한 후 사용자가 값을 입력하지 않았는지 확인하려고합니다. 그러나 값이 비어 있으면 scanf 행의 코드를 지나치지 않는 것으로 보입니다. (나는 scanf와이 /가 공백 후에 꺼 트림 무시 생각?) 내가 이것을 실행하고 빈 값을 입력 할 때C - scanf로 빈 값을 검사 할 수 없습니까?

void myFunction() 
{ 
    char arrInput[99]; 

    while (1) 
    { 
     printf("\nEnter some words with spaces: "); 

     scanf(" %49[^\n]s", arrInput); // Prevent trimming after whitespace, so that I can parse each word by a space 

     // If you simply press enter without entering any value, it never gets down here 
     if (arrInput == NULL) 
     { 
      // It's an empty value, do something 
     } 
    } 
} 

기본적으로, 더 입력 스캔을 유지하지 않으며 결코 if 문에 도달 (여부 결정 입력이 비어 있음).

+0

어떤 조건에서 자동 저장 기간이 'NULL'일 것으로 예상하십니까? – EOF

+0

'arrInput'은 포인터가 아니며 'NULL'일 수 없습니다. 빈 문자열이 들어 있는지 확인하십시오. – Barmar

+0

나는 여러 가지 방법을 시도했기 때문에 NULL을 시도했다. strcmp (arrInput, "")와 같은 행운을 ... 아마 이해할 수 없다. – User10505

답변

-1

나는 이것을 스캔 할 수 없다고 생각합니다. 한 값을 scanf하고 100 값을 입력하면 scanf가 완료되지 않습니다. 이제 다음을 수행 할 수 있습니다 :: 1- 다른 번호 또는 다른 문자를 사용하여 주문을 실행하십시오. 예를 들어, -1 또는 'e'를 입력하지 않으려면 ... 2- 사용 puts()gets() ...

나는이 방법으로 해결할 수 있다고 생각합니다. 행운을 빌어 요.