单次输入

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 基本输入的更多相关文章

  1. Scanner, BufferedReader, InputStreamReader 与ACM模式输入

    Scanner, BufferedReader, InputStreamReader 与ACM模式输入html { -webkit-print-color-adjust: exact } * { bo ...

  2. ACM字符串输入问题

    坑死了..竟然被这个问题困扰了大半个学期,今天搜来翻去终于弄明白了一些,以后固定用这几种用法好了不然总出错QAQ实际测试例子就没放了,死记这里就够用了T-T 概念: gets()函数:用来从标准输入设 ...

  3. ACM 2003~2005

    ACM 2003 求实数的绝对值 import java.util.Scanner; public class Lengxc { public static void main(String[] ar ...

  4. ACM 2000~2002

    ACM  2000  输入三个字符后,按各个字符的ASCⅡ码从小打到的顺序输出这三个字符. import java.util.Scanner; public class Lengxc {public ...

  5. ACM的输入输出总结

    关于ACM的输入输出(一) 一般来说ACM的现场赛会规定输入输出 或者是文件输入标准输出 也可能是文件输入文件输出 如果没有规定的话那么一般就是标准的输入输出了 那说一下输入输出的重定向 一般用下面两 ...

  6. OJ每日一练试水第1天,聊聊输入输出问题

    目录 多组输入 第一题 多组冒泡排序 (难度2颗星版本) (难度3颗星版本) (难度4颗星版本) scanf返回值 时间:2019.4.26 @( 每日一练01) 先借鉴一下ACM的输入格式 OJ题中 ...

  7. c语言进阶4-有返回值函数

    一.         从函数返回 从函数返回就是返回语句的第一个主要用途.在程序中,有两种方法可以终止函数的执行,并返回到调用函数的位置.第一种方法是在函数体中,从第一句一直执行到最后一句,当所有语句 ...

  8. [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式

    ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...

  9. [转]C语言文件输入/输出ACM改进版(freopen函数)

    C语言文件输入/输出ACM改进版(freopen函数) 2009年5月27日 10:379,457 浏览数发表评论阅读评论   文章作者:姜南(Slyar) 文章来源:Slyar Home (www. ...

随机推荐

  1. ESP8266的RTOS版本ota在线升级基本流程及备忘

    ESP8266的ota升级由于涉及到不同的flash空间大小,以及新旧版本的不同,所以流程相对比较复杂.笔者这个倒腾的时间还是有一些的,不过,总归把事情解决了.下面记录一下基本的流程和遇到的问题. 还 ...

  2. PL/SQL Developer查詢已經執行過的SQL語句記錄 Ctrl+E

    PL/SQL Developer查詢已經執行過的SQL語句記錄 最近提数比较多,没有已存在的脚本信息,就手工写呀... 一次性打开了多个提数脚本文件,结果执行完后把脚本保存好了,但是最后的整理其它脚本 ...

  3. 编译Netty源码遇到的一些问题-缺少io.netty.util.collection包

    缺少包和java类 下载好Netty的源码后,导入到IDE,运行自带的example时编译不通过. 如下图,是因为io.netty.util.collection的包没有 点进去看,确实没有这个包 发 ...

  4. com.alibaba.fastjson和net.sf.json的区别

    JSON有两种结构 json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构 1.对象:对象在js中表示为“{}”括起来的内容, ...

  5. 设计安全的API-JWT与OAuthor2

    最近新开发一个需要给App使用的API项目.开发API肯定会想到JASON Web Token(JWT)和OAuthor2(之前一篇随笔记录过OAuthor2). JWT和OAuthor2的比较 要像 ...

  6. iOS-关于自定义分段选择器的一些小事(Segmented)

    系统自带的分段选择就是 UISegmentedControl ,也有一些大佬自定义的 Segmented ,比如Git上的 HMSegmentedControl ,我以前最初的项目中,也有用到过,如果 ...

  7. SpringCloud之Hystrix:集群容错框架

    分布式环境中,可能会有一些被依赖的服务会失效,影响系统的稳定运行.Hystrix通过添加延迟阈值以及容错的逻辑,以控制分布式系统间组件的交互.Hystrix通过隔离服务间的访问点.停止它们之间的级联故 ...

  8. [洛谷P1144][题解]最短路计数

    这道题可以用各种算法踩掉,我选择的是SPFA. 因为题目要求计数,所以我们开一个ans数组表示数量. 分两种情况讨论: 一:dis_v>dis_u+1 最短路被更新了,可以直接ans_v=ans ...

  9. 菜鸟刷面试题(二、RabbitMQ篇)

    目录: rabbitmq 的使用场景有哪些? rabbitmq 有哪些重要的角色? rabbitmq 有哪些重要的组件? rabbitmq 中 vhost 的作用是什么? rabbitmq 的消息是怎 ...

  10. WSGI与uWSGI的应用场景与使用方法

    WSGI  /与/  uWSGI 在阿里云上部署项目时,在通信中我们都会用到wsgi与uWSGI,这此我就带大家来了解一下wsgi与uWSGI. 对了,上次有个朋友问我Django的生命周期是什么?我 ...