c语言控制台输入回车函数 c语言输入后回车没反应

c语言getch输入密码接收回车的问题以上代码问题所在:
1.考虑到c语言控制台输入回车函数,回车/n处理后,要表示密码输入结束应该在getch()返回''\n'给a[i]后,将该a[i]c语言控制台输入回车函数的值替换为'\0' 。这样输出字符串时 , 才会正确输出密码 。而'\n'仅表示,光标切换到行首 。
2.输出密码时,不要直接使用printf循环输出字符(%c),而是应该使用(%s),当然,你也可以使用(%c)时,判断输出'\0'(你上面是'\n')时,换行 。
3.对于文件中显示,只是记事本把'\n'解释成某种字符而已 。对于特殊含义字符,经常会显示成不常见的符号 。不过'\n'还是会解释成换行 。但是你上面使用fputs写入字符串,程序无法探测到正常的字符串结束标记'\0',所以你文件中出现乱码很正常,你要是指定a[15] = '\0' , 或许就好了 。
下面分享一段c语言控制台输入回车函数我写的控制台下用于输入密码的输入函数 。函数返回输入的密码字符串,第一个参数是涌入保存密码的字符串地址,第二个是显示出来看的,比如显示星号*,就传入 '*'。
char* StrPassword(char *sz, int MarkStar)
{ int i=0;
if( NULL == sz)
return 0;
while('\n' != (sz[i]=getch()))
{
// printf("%d",sz[i-1]);
if(8 == sz[i-1])
{
if( i1 )
{
i -= 2;
putch('\b');
putch(' ');
putch('\b');
}
else
{
i--;
}
continue;
}
else if(13 == sz[i-1])
{
break;
}
else
{
if(0 != MarkStar)
putch(MarkStar) ;
}
}
sz[i-1]='\0';
putch('\n');
return sz;
}
c语言中怎么输入换行C语言中实际上用任何方法(常规库函数)都无法获取回车 。因为控制台是在你输入完一行并点下回车之后 , 把除c语言控制台输入回车函数了回车之外c语言控制台输入回车函数的字符一起送到程序输入缓存中的,你只能用变通的方法,比如一次获取一行、一个字符或一个数字,设置多个输入,那么回车后,它必然会进去下一个输入或者代码块 。
例如:用两个scanf命令
scanf("%d",a);
scanf("%d",b);
这样就能实现回车后进入下一个输入或者代码块 。
C语言控制台输入怎么样编程星星//用getch()函数,这个函数只接收字符,不回显 , 接收到一个字符,可以直接输出‘*’
#includestdio.h
#includeconio.h
#include
stdlib.h
#define
PassWordLength
10
int
main()
{
char
PassWord[PassWordLength 1]={0};
char
name[10];
int
i=0;
printf("Enter
your
name:");
【c语言控制台输入回车函数 c语言输入后回车没反应】scanf("%s",name);
printf("Please
enter
the
password:");
for(i
=
0;
i
PassWordLength;
i)
{
PassWord[i]
=
getch();
if(PassWord[i]!=0x0d)//输入的不是回车符 , 输出'*'
printf("*");
else
break;
}
PassWord[PassWordLength]=0;
printf("\nName:%s",name);
printf("\nPassword:
%s\n",PassWord);
system("PAUSE");
return
0;
}
C语言输入回车不执行,换行了?C语言在向计算机输入文本文件时 , 将回车换行符转换为换行符 , 在输出时把换行符转换成回车和换行两个字符 。
在用二进制文件时,不进行这种转换 , 在内存中的数据形式与输出到外部文件中的数据形式完全一致,一一对应 。
c语言如何输入return楼主你好!
这个问题,我可以给你给全面的解答!
在windows下,你的回车实际实际上是0a 0d,即是'\n''\r',在windows回车键是这两个的组合!但是为什么你用'\r',就不行呢?原因是回车是上面两个字符 , 而你的定义的c只能对应一个字符,回车上面已经说了 , 是两个字符的组合,因为'\n'在前所以,当你用'\n'就没问题!用'\r'就不行!
但是,当我们在Linux就不是这样了,linux下的回车仅仅是'\n' , 如果是在Mac系统的话,那回车键就是'\r'.
所以综上所述,关键你在什么系统环境下编程!
希望我的回答对你有帮助!
C语言程序 。为什么这个程序输入时一回车就输出,而不是遇到结束符 "EOF"才输出 ?因为你循环里有输出函数 。
①(wins的控制台中)你的回车相当于末尾加入'\n'然后执行输入 。当输入不是EOF,程序进入循环,输出结果 。(但程序并未结束,还可以继续输入)
②当你输入CTRL Z后,程序结束:
由于你的输出函数在循环内部,因此输入EOF后,程序跳过循环直接结束 。
c语言控制台输入回车函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言输入后回车没反应、c语言控制台输入回车函数的信息别忘了在本站进行查找喔 。

    推荐阅读