これをテストscanf("%c" , &addr);
する前に、常に等しいと思います:getchar()
#include<stdio.h>
int main()
{
int i;
scanf("%c",&i);
printf("%d\n", i);
if(i == EOF)
printf("EOF int type and char input\n");
i =getchar();
printf("%d\n", i);
if(i == EOF)
printf("EOF int type and char input\n");
}
「Ctrl+D」を 2 回使用すると出力が得られました。
-1217114112
-1
EOF int 型と char 入力
EOF は-1
typeint
であるため、 scanf("%d",&i);
replaceも使用してみますscanf("%c",&i)
が、同じ出力が得られます。
混乱しました。誰かが私のためにこれを説明できますか?
- - - - - - - - - - - - - - - - - 編集 - - - - - - - - --------------------------------
の動作を知りたいscanf("%c",i)
Ctrl+D 、テストします:
#include<stdio.h>
int main()
{
int i;
int j;
j = scanf("%c",&i);
printf("%c\n", i);
printf("%d\n", j);
if(i == EOF)
printf("EOF int type and char input");
i =getchar();
printf("%d\n", i);
if(i == EOF)
printf("EOF int type and char input");
}
出力:
k // If the scanf set 1 byte in i , why here print 'k' ?
-1
-1
EOF int type and char input