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