C语言刷题的输入输出控制

1. while(scanf("%d",a+i)!=EOF)

    scanf的返回值为成功scan入的个数,若一个都没有成功录入则为0,若遇到错误或遇到end of file,返回值为EOF。但是①    Linux中,在新的一行(回车键)的开头,按下Ctrl+D,就代表EOF;

②    Windows中的DOS,在新的一行(回车键)的开头,按下Ctrl+Z,表示EOF。

另外:对于一些将Tab,Space和Enter当做普通字符输入的场景中,例如Java的Scanner类的hasNext()方法,回车,Tab和空格是被当做普通字符读取了,不会使系统的读取停止,此时要用Ctr+Z才可停止输入。

 

2.九九乘法表这种要对齐的如何解决(位数多了就不整齐了)

#include<iostream>

int main(int argc,char **argv)
{
	using namespace std;
	for (int j = 1; j <= 9; j++) {
		 for (int i = 1; i <= j; i++) 
		   cout<<i<<"*"<<j<<"="<<i * j<<"   ";  //同一行不同乘式之间用固定的间隙(3个空格)隔开
          cout<<endl;
	}
	return 0;
}

结果:

可以看到,3*5=15开始错位了,要是一位数和三位数之间乘法表,则错位更大

为此,不用单独判断结果位数取动态控制间隔,可以利用已有的转移字符“\t”来对齐:

#include<iostream>

int main(int argc,char **argv)
{
	using namespace std;
	for (int j = 1; j <= 9; j++) {
		 for (int i = 1; i <= j; i++) 
		   cout<<i<<"*"<<j<<"="<<i * j<<"\t";  //使用转移字符\t
          cout<<endl;
	}
	return 0;
}

结果:

说明:

\t是自动跳至下个制表位(Tab),一般为四个空格位,不同编译器可能有所不同,但是,同时它具有自动对齐功能,效果不再赘述,见上结果。

 

  

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值