对字符/字符串输入的一点记录



#include<cstdio>
#include<cstring>
int main(){
	int a;
	char b;
    char d[10];
	printf("Put a character\n");//输出的\n不影响之后字符读取 
//输入 c\n
	scanf("%c",&b);//此时读入的为键盘输入的 c 
	printf("b=%c,ascii=%d\n",b,(int)b);//输出可见为正常读取
	printf("Put a number\n");//读取非此处\n 
//输入 13
	scanf("%d",&a);//输入时结束  输入  的标志 \n 会被下一个读取字符、字符串的函数读入 
	printf("a=%d",a);//输出a为数字 13 ,不加换行符输出 
	scanf("%c",&b);//此时输入为换行符,为上一次输入a时结束符 
	printf("b=%c,ascii=%d\n",b,(int)b);//ASCII=10
	printf("Put a number\n");//读取非此处\n
	scanf("%d",&a);
	printf("a=%d",a);
	b=getchar();
	putchar(b);//此时换了一行,为换行符 
	printf("b=%c,ascii=%d\n",b,(int)b);//ASCII=10
	printf("Put a number\n");//读取非此处\n
	scanf("%d",&a);
	printf("a=%d\n",a);
	printf("Put a string\n");//读取非此处\n
	scanf("%s",d);//此时不会输入上一个换行符\n 
	printf("%s\n",d); 
	printf("Put a character\n");
	b=getchar();//输入为\n 
	printf("b1=%c,ascii=%d\n",b,(int)b);
	b=getchar();//输入为下一个键盘输入字符,若同时连续输入两个字符,则 
	printf("b2=%c\n",b);                                            // 
	char str[1000];                                                 //
	int i=0;                                                        //
    char c;                                                         //
    printf("Put a character c\n");                                  //
    //以下为含空格字符串读入方法//                                  // 
    c=getchar();//此处读取为换行符     在此处输入之前有输入时启用   //则此处为上次输入的第二个字符 
    printf("c=%c\n",c);              //用于检查c的输入 
    printf("c=%d\n",(int)c);         //显示为10,ASCII对照为换行 
    while((c=getchar())!='\n')
    {
    	str[i++]=c;
    	printf("c=%c\n",c);
	}
	printf("%d\n",i);
	str[i]='\0';
	
	
	//若想规避输入的\n结尾,可以用getche()代替getchar()
	//使用该函数需include<conio.h>,且无cconio或conio 
}


运行结果如下

Put a character
c
b=c,ascii=99
Put a number
11
a=11b=
,ascii=10
Put a number
22
a=22
b=
,ascii=10
Put a number
33
a=33
Put a string
qwerty
qwerty
Put a character
b1=
,ascii=10
q
b2=q
Put a character c
c=

c=10
a
c=a
1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值