程设思维实践-第一节课问答

为什么超过1M不可以开临时变量的数组

       在部分网站中,栈空间可能有限,可能会发生栈空间溢出。函数内定义的变量在栈区,通常空间比较小,建议开在全局或者new一个在堆区。


那怎么手动加栈呢?

       一般是改编译连接器命令,加一句 -Wl,–size=xxxx。(xxxx的单位是kb)


简单的文件操作

       提高调试效率,但是测评一定要去掉。

freopen("a.in","r",stdin);
freopen("a.out","w",stdout);


调试

       对于DEV C++而言,
       1.打上断点;
       2.F5调试,F6停止;
       3.F7进行下一步,F8执行并进入下一条语句。

       对于Linux下VS Code而言,
       1.点击左侧调试按钮(一定要打开一个文件夹。新建一个文件,选中程序即代码文件再进行配置。);
       2.选择语言,如C++;
       3.选择g++……
       4.选择断点,点击左上角g++.exe生成……
       5.单步调试(进入函数),单步跳过(不进入函数)
       注意要在终端下输入数据。


Input/Output

       建议只使用cstdio,而不使用iostream,cin慢。

格式化输入输出到标准IO
//使用scanf和printf
//输入:
%d:int           %c:char      %u:unsigned  
%lld:long long   %lf:double   %f:float
//输出:
%.2fdouble(注意double的输出是%f)
//可以通过输入输出的 %? %? 来进行数据类型转换。
%#p (可以输出地址)
scanf("%s",s);
scanf("%s",s + 2);
scanf("%s",s + 5);
printf("%s",s);


格式化输入输出到字符串

       getchar()


单字符输入输出

       预先将所有bytes当作char类型读到数组作为缓冲区,再从缓冲区中模拟读入。


快速读入、缓冲区冲刷

       并非printf就输出,而存在缓冲区。在一些交互题目当中必须要使用,比如:让你猜一个预先确定的100以内的一个数直到猜对。

fflush(stdout);


无明确终止(需使用文件操作)
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
while(scanf("%d",&a) != EOF){
	//到文件结尾
}
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值