结果出现部分乱码
#include<stdio.h>
char *getnch(char *ch,int n)
{
int i;
for(i=0;i<n;i--)
{
ch[i]=getchar();
if(*ch=(' '||'\0'||'\n'||NULL||EOF))
return ch;
else
return ch;
}
}
void main()
{
char *nch,str[10];
nch=getnch(str,10);
if(nch=NULL)
puts("input failed!");
else
puts(str);
puts("done\n");
}
用vs2010的,出现这样的结果
求解
[解决办法]
注意“=”和“==”完全不同
[解决办法]
#include<stdio.h>
char *getnch(char *ch,int n)
{
size_t r = fread(ch, 1, n-1, stdin);
if(r)
{
ch[r] = '\0';
return ch;
}
return NULL;
}
int main()
{
char *nch,str[10];
nch=getnch(str,10);
if(nch == NULL)
puts("input failed!");
else
puts(str);
puts("done\n");
return 0;
}