C语言 scanf("%s",filename); ch=getchar(); 在字符串输入结束后 c语言中scanf 和getchar区别
c\u8bed\u8a00scanf\u8f93\u5165\u5b57\u7b26\u4e32\u4e3a\u4f55\u8981\u52a0getchar\u7b2c\u4e00\u4e2ascanf\u8bfb\u5165\u5b57\u7b26\u4e32\u540e\uff0c\u6362\u884c\u7b26\u7559\u5728\u8f93\u5165\u7f13\u51b2\u533a\u4e2d\uff0c\u88ab\u7b2c\u4e8c\u4e2ascanf\u8bfb\u5165\uff08scanf\u7684\u683c\u5f0f\u5b57\u7b26\u4e32\u4e3a%c\u65f6\u4f1a\u8bfb\u53d6\u4e00\u5207\u5b57\u7b26\u5305\u62ec\u6362\u884c\u548c\u56de\u8f66\uff09\uff0c\u56e0\u800c\u9020\u6210\u9519\u8bef\u3002\u53ef\u5728\u7b2c\u4e00\u4e2ascanf\u7ed3\u675f\u540e\u52a0\u5165\u4e00\u884cwhile(getchar()!='\n');\u6e05\u7a7a\u8f93\u5165\u7f13\u51b2\u533a\u3002
\u524d\u4e24\u4e2a\u95ee\u9898\u8f93\u51fa\u7ed3\u679c\u662f\u4e00\u6837\u7684\u3002\u5f53\u7136\uff0cch=getchar()\uff1b\u5e94\u6539\u4e3ach[i]=getchar();\u5e26\u7a7a\u683c\u65f6\uff0c\u8981\u628a\u63a7\u5236\u5faa\u73af\u53d8\u91cf\u6539\u4e3a20\uff1b\u540e\u9762\u7684\u95ee\u9898\u5e94\u8be5\u662fscanf\uff08\u201c%s\u201d\uff0cstr\uff09\uff1b\u4e0egets\uff08str\uff09\uff1b\u7684\u533a\u522b\uff0c\u6b64\u65f6\uff0cscanf\u4e2d\u7a7a\u683c\u3001\u56de\u8f66\u3001\u8df3\u683c\u90fd\u8868\u793a\u7ed3\u675f\uff0c\u800cgets\u4e2d\u4e3a\u4e00\u4e2a\u5b57\u7b26
字符串输入结束后立即按回车键都会的。
#include<stdio.h>
main()
{
char filename[80];
int ch;
scanf("%s",filename);
// ch=getchar();
scanf("%c",&ch);
printf("ch=0x%02X ",ch); // 用16进制数值输出这个键的编码,就知道它是\n键
return 0;
}
应该会报错吧 输入要用&的
scanf("%s",filename);不会报错吗?不管怎样都会吃掉回车的
扩展阅读:visual studio ... " " 一师一优课 ... scanf 中文翻译 ... 5个例子搞懂scanf ... qsc官网 中文 ... c 电子书 ... cascade 中文翻译 ... c++ ... c语言 syscall ...