单次输入

C语言

int a,b;

scanf("%d %d",&a,&b);

C++语言

int a,b;
cin >> a >> b;

循环输入

C语言

int a,b;

while(scanf("%d %d",&a,&b)!=EOF){

};

C++语言

int a,b;

while(cin >> a >> b){

};

输入字符串

cin 遇到 '\n' 或者 ' ' 结束输入。

getline 总是从第一行开始读取字符串,不管是否已经执行过 cin >> a; 之类的语句

输入一整行字符串

C语言

char ch[100];

gets(ch);

C++语言

char ch[100];

cin.getline(ch);

// or
string str; getline(cin,ch);

助记: 两个 getline 都需要 cin,一个放外面,一个放里面

输入空格分隔的字符串

C语言

char str[100];

scanf("%s", str);

注意点:scanf 从输入流中获取字符串的时候范围是 [结束符,结束符),读取后将首部的结束符去掉后传给字符串变量。另,结束符可以是多个连续空格

测试案例如下:

#include<stdio.h>

int main(){

	char str[20]; // 输入 "\n\nnotReadEnterOrSpace\n"
char ch;
scanf("%s",str); //得到 " notReadEnterOrSpace" ,scanf 读取字符串忽略前后回车或空格
ch = getchar();
printf("%s\n",str); // 输入流中连续字符串之后的空格或回车不再读取
if (ch == '\n') {
printf("\\n");
}else if (ch == ' '){
printf("_");
}
printf("\n");
}

注意点: gets 从输入流中获取字符串的时候范围是 (结束符,结束符],读取后将尾部的结束符去掉后传给字符串变量。附带说明一点,getchar 读取到文件结尾时其值为 \xff 即 ascII 码中 255 的 16 进制表示,其打印值为 8 进制的 \377

测试案例如下:

#include<stdio.h>

int main(){

	freopen("/Users/apple/Desktop/input.txt", "r", stdin);
char str[20];
char ch;
gets(str);
ch = getchar();
printf("%s\n",str); if (ch == '\n') {
printf("\\n");
}else
printf("%c",ch); printf("\n");
}
/*/
测试一:读取空行 input:
### notReachHere
### output:
### h
###
测试二:读取单行 input:
###
getThisLine
###
ouput:
###
getThisLine
\377
### 测试三:读取单行,文件未到结尾 input:
###
getThisLine
anotherLine
###
ouput:
###
getThisLine
a
###
*/

C++语言

见下一节:输入用某个符号分隔的多个字符串。

输入用某个符号分隔的多个字符串

C语言

char str1[100],str2[100];

scanf("%s%s",str1,str2);//字符串之间用一个或多个空格分隔
gets(str1);gets(str2);//字符串之间用一个换行符分隔

C++语言

char str1[100],str2[100];

cin.getline(str1,100,'*');cin.getline(str2,100,'*');//字符串之间用一个'*'分隔

限制输入长度或以某个字符作为结尾

C++语言

char str1[100];
cin.getline(str1,100,'*');//限制长度为100,如果想提前结束就用'*'作为结束符号 string str; getline(cin,str,'*');// 以'*'为结束符号

最新文章

  1. 【JVM】JVM系列之类加载机制(四)
  2. su到普通用户不能起图形 解决办法
  3. MySQL中DATETIME、DATE和TIMESTAMP类型的区别
  4. JVM垃圾收集器基本思想
  5. 优质IT资源分享社区www.itziyuan.top
  6. iphone删除自动更新的系统
  7. 初识SQL Server Integration Service
  8. Spring MVC 3 深入总结
  9. web字体
  10. VMware VMware各版本
  11. HDU 5265 pog loves szh II (技巧)
  12. [转]vector iterator not incrementable 的问题
  13. git使用笔记(三)(图文说明) 图解提交更改内容的不同方式,涉及代码
  14. ThreadPool(线程池) in .Net
  15. html5 canvas 一个漫天飞雪的效果
  16. BZOJ 1798: [Ahoi2009]Seq 维护序列seq( 线段树 )
  17. 百度网盘自动上传脚本-bpcs_uploader
  18. myeclipse eclipse创建maven web项目时 index.jsp报错
  19. 学习python登录demo
  20. DB Query Analyzer 6.02 is released, 71 articles concerned have been published

热门文章

  1. Context知识详解
  2. IT兄弟连 HTML5教程 CSS3属性特效 渐变3
  3. C#线程学习笔记二:线程池中的工作者线程
  4. Redis 命令执行全过程分析
  5. jsf中的按钮加弹框的两种形式
  6. 通过传XML格式导入到ORACLE的销售订单
  7. English:2019100401_Suffix&quot;ery&quot;
  8. 48-创建 overlay 网络
  9. python 基础学习笔记(6)--函数(2)
  10. PC上装VM上装虚拟机