ACM 基本输入
单次输入
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,'*');// 以'*'为结束符号
ACM 基本输入的更多相关文章
- Scanner, BufferedReader, InputStreamReader 与ACM模式输入
Scanner, BufferedReader, InputStreamReader 与ACM模式输入html { -webkit-print-color-adjust: exact } * { bo ...
- ACM字符串输入问题
坑死了..竟然被这个问题困扰了大半个学期,今天搜来翻去终于弄明白了一些,以后固定用这几种用法好了不然总出错QAQ实际测试例子就没放了,死记这里就够用了T-T 概念: gets()函数:用来从标准输入设 ...
- ACM 2003~2005
ACM 2003 求实数的绝对值 import java.util.Scanner; public class Lengxc { public static void main(String[] ar ...
- ACM 2000~2002
ACM 2000 输入三个字符后,按各个字符的ASCⅡ码从小打到的顺序输出这三个字符. import java.util.Scanner; public class Lengxc {public ...
- ACM的输入输出总结
关于ACM的输入输出(一) 一般来说ACM的现场赛会规定输入输出 或者是文件输入标准输出 也可能是文件输入文件输出 如果没有规定的话那么一般就是标准的输入输出了 那说一下输入输出的重定向 一般用下面两 ...
- OJ每日一练试水第1天,聊聊输入输出问题
目录 多组输入 第一题 多组冒泡排序 (难度2颗星版本) (难度3颗星版本) (难度4颗星版本) scanf返回值 时间:2019.4.26 @( 每日一练01) 先借鉴一下ACM的输入格式 OJ题中 ...
- c语言进阶4-有返回值函数
一. 从函数返回 从函数返回就是返回语句的第一个主要用途.在程序中,有两种方法可以终止函数的执行,并返回到调用函数的位置.第一种方法是在函数体中,从第一句一直执行到最后一句,当所有语句 ...
- [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式
ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...
- [转]C语言文件输入/输出ACM改进版(freopen函数)
C语言文件输入/输出ACM改进版(freopen函数) 2009年5月27日 10:379,457 浏览数发表评论阅读评论 文章作者:姜南(Slyar) 文章来源:Slyar Home (www. ...
随机推荐
- AndroidStudio使用的kotlin简介
Kotlin是一种在Java虚拟机上执行的静态型别程式语言,它也可以被编译成为JavaScript原始码.它主要是由俄罗斯圣彼得堡的JetBrains开发团队所发展出来的程式语言,其名称来自于圣 ...
- C# Task TaskFactory 异步线程/异步任务
Task是.NetFramework3.0出现的,线程是基于线程池,然后提供了丰富的API TaskFactory 提供对创建和计划 Task 对象的支持 创建和启动异步任务 1.Task task ...
- sqlserver 标准系统数据库
SQL server系统数据库很重要,大部分时候都不应该修改他们.唯一例外的是model数据库和tempdb数据库.model数据库允许部署更改到任何新创建的数据库(如存储过程),而更改tempdb数 ...
- Java生鲜电商平台-优惠券功能设计与开发(小程序/APP)
Java生鲜电商平台-优惠券功能设计与开发(小程序/APP) 说明:Java生鲜电商平台-优惠券功能设计与开发(小程序/APP) 目录 1.项目背景与需求分析 2.需求目的与功能点列表 3.业务逻辑 ...
- 码农-->工程师
微信公众号推送文章记录,侵删 一个猎人的比喻: 当土著拿到猎枪之后,他们射箭的技能退化严重,但因为食物更多了,厨艺有了长足的进展. 当你不再为一些问题担心之后,你就可以把注意力集中在另外一些问题上了. ...
- 编译原理之LL(1)文法的判断,递归下降分析程序
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不 ...
- 搭建虚拟机+静态IP+XShell管理虚拟机+jdk+tomcat热部署
第一步:搭建虚拟机 大家可以参考http://blog.csdn.net/u012453843/article/details/68947589这篇博客进行学习 第二步:配置静态IP并且要能上网 大家 ...
- 14. Go 语言编译与工具
Go 语言编译与工具 Go 语言的工具链非常丰富,从获取源码.编译.文档.测试.性能分析,到源码格式化.源码提示.重构工具等应有尽有. 在 Go 语言中可以使用测试框架编写单元测试,使用统一的命令行即 ...
- 【oracle】ORA-00947: 没有足够的值
insert 时 对应NOT NULL 的列 必须有值
- 权限控制终于来了!Redis 6.0新特性——ACLs
在2019年纽约的Redis Day上,Salvatore Sanfilippo(AKA Antirez)介绍了即将发布的Redis 6.0的新特性.以下是关于ACLs的内容. ACLs简介 在过去的 ...