#include<bits/stdc++.h>

#include<bits/stdc++.h>包含C++的所有头文件,看见别人用这个函数,然后就能直接用vector,set,string那些函数了,摸不着头脑,感觉特神奇就百度了一下,才发现这个是C++版本升级,然后文件自带的,方便了程序员吧。不然每次都得敲那模板老长……




#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
return 0;
}

#include<bits/stdc++.h>这个头文件包含以下等等C++中包含的所有头文件:

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
等等……
不过在国内oj中,poj,hdu 不支持这个函数,这几个oj的编译器问题,其他国外的oj,还有台湾的oj都支持,CF,Topcoder也都支持。

输入输出(printf scanf)

printf

printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。
printf 函数的一般形式为:
int printf(const char *format,[argument]);
格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

用法

以下程序用于获得输入值i,j并将其输出(i,j之间以逗号隔开)
#include<stdio.h>
int main()
{
int i,j;
scanf("%d,%d",&i,&j);
printf("i=%d;j=%d",i,j);
return0;
}
以下程序用于输出“百度百科”
#include<stdio.h>
int main()
{
printf("百度百科");
return0;
}

通常意义上format的格式如下:

%[flags][width][.prec][F|N|h|l]type

Hap环境变量

下列环境变量影响 printf 命令的执行:
LANG 在 LC_ALL 和相应的环境变量(以 LC_ 开头)没有指定语言环境时,确定语言环境编目使用的语言环境。
LC_ALL 确定用于覆盖由 LANG 或其它任何 LC_环境变量设置的任何语言环境编目值的语言环境。
LC_CTYPE 确定把文本字节数据顺序解释为字符的语言环境;例如,单一字节对应多字节字符的参数。
LC_MESSAGES 确定写消息使用的语言。
LC_NUMERIC 确定数字格式编排的语言环境。此环境变量影响使用 e、E、f、g 和 G 转换字符编写的数字的格式。

Unix命令行程序和内建指令(更多)

文件系统
▪ cat ▪ cd ▪ chmod ▪ chown
▪ chgrp ▪ cksum ▪ cmp ▪ cp
▪ du ▪ df ▪ fsck ▪ fuser
▪ ln ▪ ls ▪ lsattr ▪ lsof
▪ mkdir ▪ mount ▪ mv ▪ pwd
▪ rm ▪ rmdir ▪ split ▪ touch
▪ umask      
 
程序
▪ at ▪ bg ▪ chroot ▪ cron
▪ exit ▪ fg ▪ jobs ▪ kill
▪ killall ▪ nice ▪ pgrep ▪ pidof
▪ pkill ▪ ps ▪ pstree ▪ sleep
▪ time ▪ top ▪ wait  
 
使用环境
▪ env ▪ finger ▪ id ▪ logname
▪ mesg ▪ passwd ▪ su ▪ sudo
▪ uptime ▪ w ▪ wall ▪ who
▪ whoami ▪ write    
 
文字编辑
▪ awk ▪ comm ▪ cut ▪ ed
▪ ex ▪ fmt ▪ head ▪ iconv
▪ join ▪ less ▪ more ▪ paste
▪ sed ▪ sort ▪ strings ▪ talk
▪ tac ▪ tail ▪ tr ▪ uniq
▪ vi ▪ wc ▪ xargs  
 
Shell 程序
▪ alias ▪ basename ▪ dirname ▪ echo
▪ expr ▪ false ▪ printf ▪ test
▪ true ▪ unset    
 
网络
▪ inetd ▪ netstat ▪ ping ▪ rlogin
▪ netcat ▪ traceroute    
 
搜索
▪ find ▪ grep ▪ locate ▪ whereis
▪ which      
 
杂项
▪ apropos ▪ banner ▪ bc ▪ cal
▪ clear ▪ date ▪ dd ▪ file
▪ help ▪ info ▪ size ▪ lp
▪ man ▪ history ▪ tee ▪ tput
▪ type ▪ yes ▪ uname ▪ whatis

scanf

printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include
<stdio.h>。它是格式输入函数,
即按用户指定的格式从键盘上把数据输入到指定的变量之中。
函数原型
int scanf(const char*format,...);
scanf()是从标准输入输出流stdio.h
(标准输入设备),一般是键盘中读内容的通用子程序,
可以说明的格式读入多个字符,保存在对应地址的变量中。
其调用形式为: scanf("<格式说明字符串>",<变量地址>);变量地址要求有效,
并且与格式说明的次序一致。
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如:scanf("%d%d",&a,&b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF
且返回值为int型.
注意问题
(1) 对于字符串数组或字符串指针变量,由于数组名和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。
(2) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。
(3) scanf()函数中没有精度控制。
         如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。
(4) scanf中要求给出变量地址,如给出变量名则会出错
          如 scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。
(5) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔。
  C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
(6) 在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。
例如:scanf("%c%c%c",&a,&b,&c);
输入为: d e f
 则把'd'赋予a, ' (空格)'赋予b,'e'赋予c。因为%c 只要求读入一个字符,后面不需要用空格作为两个字符的间隔,因此把'
'作为下一个字符送给b。
只有当输入为:def (中间无空格)时,才能把'd'赋于a,'e'赋予b,'f'赋予c。 如果在格式控制中加入空格作为间隔,
如:scanf("%c %c %c",&a,&b,&c);
则输入时各数据之间可加空格。

scanf标准输入的一些问题:

  1. 如何让scanf()函数正确接受有空格的字符串?如:
I love you!
  2. 键盘缓冲区残余信息问题
 
3. 输入类型与格式化字符串不匹配导致stdin流的阻塞。
 
4. 如何处理scanf()函数误输入造成程序死锁或出错
补充
fflush(stdin)这个方法在GCC下不可用。(在VC6.0下可以)

C语言一些基础知识的更多相关文章

  1. Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识

    JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...

  2. iOS开发系列--C语言之基础知识

    概览 当前移动开发的趋势已经势不可挡,这个系列希望浅谈一下个人对IOS开发的一些见解,这个IOS系列计划从几个角度去说IOS开发: C语言 OC基础 IOS开发(iphone/ipad) Swift ...

  3. 3011C语言_基础知识

    第一章  基础知识 1.1  基本框架 //任何一个c语言程序都必须包括以下格式: int main(int argc, char *argv[] ) { : } //这是c语言的基本结构,任何一个程 ...

  4. 【值得收藏】C语言入门基础知识大全!从C语言程序结构到删库跑路!

    01 C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成.格式.以及良好的书写风格,使小伙伴对c语言有个初步认识. 例1:计算两个整数之和的c程序: #include main() { ...

  5. Oracle的DML语言必备基础知识

      前提是咱们都已经对常用的数据操纵语言非常熟悉了,对标准SQL: SELECT子句                --指定查询结果集的列 DROM子句                 --指定查询来 ...

  6. C语言面试基础知识整理

    一.预处理 1.什么是预编译?何时需要预编译? (1)预编译又称预处理,是做些代码文本的替换工作,即程序执行前的一些预处理工作.主要处理#开头的指令,如拷贝#include包含的文件代码.替换#def ...

  7. 动态样式语言—LESS基础知识

    CSS是一门非程序式语言,缺少逻辑性,不便于维护 LESS在CSS现有语法的基础上,为CSS加入程序式语言的特性 引入了变量.混入.运算.函数等功能,大大简化CSS的编写,降低了CSS的维护成本 LE ...

  8. Tcl语言学习--基础知识

    一.脚本.命令和单词符号 一个TCL脚本可以包含一个或多个命令.命令之间必须用换行符或分号隔开. 1.关键字/变量 变量是程序的基础变量组成:变量名.变量值变量名要求:任何字符串都可以作为变量名,区分 ...

  9. 关于XML(可扩展标记语言)的基础知识与写法------2017-05-18

    XML(Extensible Markup Language) HTML:超文本标记语言,主要用来展示   XML:可扩展标记语言,用来做数据传输XML特点: 1.树状结构,有且只有一个根 2.标签名 ...

  10. go语言学习-基础知识

    go程序的基本结构 一个可以最简单的可运行的go程序需要满足下面两个条件: 有一个main()函数 main()函数在main包中 例如: 在go语言中的 hello world 程序如下: // m ...

随机推荐

  1. Nested Loops(嵌套循环)

    先扫描驱动表的(外表),外表的每一行驱动内表,然后匹配,所以nest loops不是主要依赖于内表有多少行,而是非常依赖于驱动表到底有多少行参与nested loops,因为驱动表(或者准确的说是驱动 ...

  2. Kafka 0.8 宕机问题排查步骤

    CPU 利用率高的排查方法 看看该机器的连接数是不是比其他机器多,监听的端口数:netstat -anlp | wc -l Kafka-0.8的停止和启动 启动: cd /usr/local/kafk ...

  3. centos 7 两台机器搭建三主三从 redis 集群

    参考自:https://linux.cn/article-6719-1.htmlhttp://blog.csdn.net/xu470438000/article/details/42971091 ## ...

  4. html js点击按钮滚动跳转定位到页面指定位置(DIV)的方法代码

    一:通过html锚点实现滚动定位到页面指定位置(DIV):    如果我们要点击实现跳转的地方是一个html锚点,也就是点击一个A标签超链接实现跳转,可以把A标签的href属性直接指向跳转指定位置的d ...

  5. mysql复杂查询(一)

    所谓复杂查询,指涉及多个表.具有嵌套等复杂结构的查询.这里简要介绍典型的几种复杂查询格式. 一.连接查询 连接是区别关系与非关系系统的最重要的标志.通过连接运算符可以实现多个表查询.连接查询主要包括内 ...

  6. html5 canvas(基本矩形)

    先从简单的开始 fillRect(x,y,width,height) 在坐标x,y的位置加上一个宽,高   如: fillRect(0,0,500,500)//在坐标0,0处加上一个宽高500的填充矩 ...

  7. Request.Cookies 和 Response.Cookies 的区别

    .NET中提供了读写Cookie的多种方法,Request.Cookies 是客户端通过 Cookie 标头形式由客户端传输到服务器的 Cookie:Response.Cookies 在服务器上创建并 ...

  8. 洛谷 P2089 烤鸡

    看了前面大佬的代码,发现这道题的解题思路都大同小异. 首先肯定要定义一个变量累加方案数量,因为方案数量要最先输出,所以所有方案要先储存下来.个人不喜欢太多数组,就只定义一个字符串. 然后我们发现只有1 ...

  9. TP-Link wr703N 使用华为HiLink系列上网卡的设置【转】

    转自:http://www.right.com.cn/forum/thread-103082-1-1.html 最近买了一个华为的E303s的上网卡,之前703的openwrt是按照需要拨号和使用U盘 ...

  10. C#: +(特性 ) + Attitude C#(类)前面或者(方法)前面 (中括号)定义

    首先要说的是,可能一些刚接触C#的朋友常常容易把属性(Property)跟特性(Attribute)弄混淆,其实这是两种不同的东西.属性就是面向对象思想里所说的封装在类里面的数据字段,其形式为: 1: ...