파일을 스캔 할 때 scanf (c Linux vi)에서 올바른 char 값을 얻지 못하는 이유는 무엇입니까?

헌신적 인

이것은 내 파일의 내용입니다

2
00000100+10000001

기본적으로 내가 원하는 것은 2에서 int로 읽고 다음 두 개의 0을 문자로 읽는 것입니다. 내 코드는 (복사하여 붙여 넣을 수 있지만 vi에서 메모장으로 어떻게하는지 모르겠습니다 ( https://stackoverflow.com/questions/26173704/how-to-copy-and-paste-to-another-application -linux-shellvim에서 )

암호:

int main(void)
{
    int times;
    scanf("%d",&times);
    printf("Number of times=%d ",times);
    char  num1;
     scanf("%c",&num1);
    char  num2;
    scanf("%c",&num2);
    int n = num1=='0'?0:1;
    int n2 = num2 == '0'?0:1;
printf("The next two digits are %d and %d\n",n,n2);
    return 0;
}

프로그램이 잘 컴파일되었고 gcc에서 실행 파일을 만들 수있었습니다. 그리고이 프로그램을 실행하고 표준 입력을 파일로 리디렉션 한 결과는 실행 파일이있는 첫 번째 파일 리디렉션 명령입니다.

$ ./a.out < input.txt

그 결과 :

Number of times=2 The next two digits are 1 and 0

두 가지가 올바르게 인쇄됩니다. 그래도 다음 숫자가 왜 1인지 이해가 안 돼요. 내 이해 scanf에서 다음 문자가 '0'인 것을 보지 합니까? 아니면 그것을 차단하는 다른 것이 있습니까? 결국 내가 원하는 '0'문자를 얻습니다. 1이 출력되는 이유를 아는 사람이 있습니까? 내가 코딩 한 방식 (나쁜 디자인이라는 것을 안다)에서 '0'이 아닌 모든 문자는 해당 int를 1로 설정합니다. 나는 단지 어떤 요소가이 문제를 일으키고이 문제를 피하는 방법을 알고 싶습니다.

Amr Ayman

인식하지 못할 수도 있지만 개행 문자 문자입니다.
그래서 num1으로 도착 '\n'하고 시험 (때문에 num1 == '0') 공백을 확인하지 않습니다 n1이 ..

%cscanf에서 공백을 접두사로 지정하여이를 방지 할 수 있습니다 . 이것은 scanf가 공백을 무시하도록 강제합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

합계에 대한 올바른 값을 얻지 못하는 이유는 무엇입니까?

분류에서Dev

파일에서 문자열을 검색 할 때 찾지 못하는 이유는 무엇입니까?

분류에서Dev

내 변수가 Firestore에서 올바른 값을받지 못하는 이유는 무엇입니까?

분류에서Dev

nmap이 Robots.txt 파일을 스캔 할 때 '허용되지 않는 항목'이란 무엇입니까?

분류에서Dev

Android 용 Chrome을 사용하여 캔버스에서 크기를 조정할 때 이미지가 매우 어두워지는 이유는 무엇입니까?

분류에서Dev

ScreenManager를 사용하는 올바른 .kv 코드를 외부 .kv 파일에 넣을 때 작동하지 않는 이유는 무엇입니까?

분류에서Dev

이메일을 통해 올바른 행에서 값을 보내지 않는 이유는 무엇입니까?

분류에서Dev

typescript에서`payload is T`를 반환 할 때 올바른 유형을 추론하는 방법은 무엇입니까?

분류에서Dev

이 노드에서 올바른 값을 얻을 수없는 이유는 무엇입니까?

분류에서Dev

14.04에 로그인 할 때 일시 중지 / 다시 시작이 데스크톱을 렌더링하지 못하는 이유는 무엇입니까?

분류에서Dev

C ++, 문자열에서 올바른 이중 값을 얻는 방법은 무엇입니까?

분류에서Dev

위젯을 추가 할 때 스크롤바 및 자동 크기 조정으로 캔버스가 스크롤되지 않는 이유는 무엇입니까?

분류에서Dev

파일에서 단어를 스캔 할 때 출력이 0이되는 이유는 무엇입니까?

분류에서Dev

PC를 시작할 때 앱에서 알림을받지 못하는 이유는 무엇입니까?

분류에서Dev

터미널에서 C ++ 프로그램을 컴파일 할 때 이러한 정의되지 않은 오류가 발생하는 이유는 무엇입니까?

분류에서Dev

터미널에서 C ++ 프로그램을 컴파일 할 때 이러한 정의되지 않은 오류가 발생하는 이유는 무엇입니까?

분류에서Dev

콤보 박스에서 실제 선택된 값을 얻지 못하는 이유는 무엇입니까?

분류에서Dev

rsync가 Linux의 / sys에서 파일을 복사하지 못하는 이유는 무엇입니까?

분류에서Dev

사용자가 scanf ()에 잘못된 데이터 유형을 입력 할 때 무한 루프를 수정하는 방법은 무엇입니까?

분류에서Dev

업로드 할 때 C #에서 파일 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

올바른 곱셈 출력을 얻지 못하는 이유는 무엇입니까?

분류에서Dev

C 파일에서 문자 행렬을 스캔 할 때 발생하는 문제

분류에서Dev

두 번째 XML 파일에서 올바른 값을 얻는 방법은 무엇입니까?

분류에서Dev

상수가 아닌 포인터에 문자열 리터럴을 할당 할 때 C 컴파일러가 경고하지 않는 이유는 무엇입니까?

분류에서Dev

올바른 위치에 올바른 문자열을 추가하지 않는 이유는 무엇입니까?

분류에서Dev

Razor 페이지에서 올바른 텍스트 상자 값을 가져올 수없는 이유는 무엇입니까?

분류에서Dev

C ++에서 다차원 char 배열의 값을 변경할 수없는 이유는 무엇입니까?

분류에서Dev

Scanf가 % c 문자를 스캔하지 않지만 명령문을 건너 뜁니다. 그 이유는 무엇입니까?

분류에서Dev

함수에서 print를 사용할 때 아무것도 얻지 못하는 이유는 무엇이며 return을 사용할 때 해결됩니까?

Related 관련 기사

  1. 1

    합계에 대한 올바른 값을 얻지 못하는 이유는 무엇입니까?

  2. 2

    파일에서 문자열을 검색 할 때 찾지 못하는 이유는 무엇입니까?

  3. 3

    내 변수가 Firestore에서 올바른 값을받지 못하는 이유는 무엇입니까?

  4. 4

    nmap이 Robots.txt 파일을 스캔 할 때 '허용되지 않는 항목'이란 무엇입니까?

  5. 5

    Android 용 Chrome을 사용하여 캔버스에서 크기를 조정할 때 이미지가 매우 어두워지는 이유는 무엇입니까?

  6. 6

    ScreenManager를 사용하는 올바른 .kv 코드를 외부 .kv 파일에 넣을 때 작동하지 않는 이유는 무엇입니까?

  7. 7

    이메일을 통해 올바른 행에서 값을 보내지 않는 이유는 무엇입니까?

  8. 8

    typescript에서`payload is T`를 반환 할 때 올바른 유형을 추론하는 방법은 무엇입니까?

  9. 9

    이 노드에서 올바른 값을 얻을 수없는 이유는 무엇입니까?

  10. 10

    14.04에 로그인 할 때 일시 중지 / 다시 시작이 데스크톱을 렌더링하지 못하는 이유는 무엇입니까?

  11. 11

    C ++, 문자열에서 올바른 이중 값을 얻는 방법은 무엇입니까?

  12. 12

    위젯을 추가 할 때 스크롤바 및 자동 크기 조정으로 캔버스가 스크롤되지 않는 이유는 무엇입니까?

  13. 13

    파일에서 단어를 스캔 할 때 출력이 0이되는 이유는 무엇입니까?

  14. 14

    PC를 시작할 때 앱에서 알림을받지 못하는 이유는 무엇입니까?

  15. 15

    터미널에서 C ++ 프로그램을 컴파일 할 때 이러한 정의되지 않은 오류가 발생하는 이유는 무엇입니까?

  16. 16

    터미널에서 C ++ 프로그램을 컴파일 할 때 이러한 정의되지 않은 오류가 발생하는 이유는 무엇입니까?

  17. 17

    콤보 박스에서 실제 선택된 값을 얻지 못하는 이유는 무엇입니까?

  18. 18

    rsync가 Linux의 / sys에서 파일을 복사하지 못하는 이유는 무엇입니까?

  19. 19

    사용자가 scanf ()에 잘못된 데이터 유형을 입력 할 때 무한 루프를 수정하는 방법은 무엇입니까?

  20. 20

    업로드 할 때 C #에서 파일 이름을 바꾸는 방법은 무엇입니까?

  21. 21

    올바른 곱셈 출력을 얻지 못하는 이유는 무엇입니까?

  22. 22

    C 파일에서 문자 행렬을 스캔 할 때 발생하는 문제

  23. 23

    두 번째 XML 파일에서 올바른 값을 얻는 방법은 무엇입니까?

  24. 24

    상수가 아닌 포인터에 문자열 리터럴을 할당 할 때 C 컴파일러가 경고하지 않는 이유는 무엇입니까?

  25. 25

    올바른 위치에 올바른 문자열을 추가하지 않는 이유는 무엇입니까?

  26. 26

    Razor 페이지에서 올바른 텍스트 상자 값을 가져올 수없는 이유는 무엇입니까?

  27. 27

    C ++에서 다차원 char 배열의 값을 변경할 수없는 이유는 무엇입니까?

  28. 28

    Scanf가 % c 문자를 스캔하지 않지만 명령문을 건너 뜁니다. 그 이유는 무엇입니까?

  29. 29

    함수에서 print를 사용할 때 아무것도 얻지 못하는 이유는 무엇이며 return을 사용할 때 해결됩니까?

뜨겁다태그

보관