荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: kaman (天外飞仙), 信区: ACMICPC
标 题: 常见的输入输出格式问题
发信站: 荔园晨风BBS站 (2005年04月18日12:46:23 星期一), 站内信件
【 以下文字转载自 kaman 的信箱 】
寄信人: kamanx.bbs@melon.gznet.edu.cn
标 题: 常见的输入输出格式问题
发信站: 荔园晨风BBS站 BBS 信差
来 源: from bbs (bbs [127.0.0.1] (may be forged))
日 期: Mon Apr 18 12:28:35 2005
发信人: scutlm (scutlm), 信区: ACM_ICPC
标 题: 常见的输入输出格式问题
发信站: 华南木棉BBS (Sat Apr 16 02:22:06 2005), 转信
在实际竞赛和网上做题时,题目对输入数据和输出结果都有一定的要求。本文从一些典型
的例子说起,希望去初学者有一点帮助。
一 输入
1. 输入到结束为止
输入数据如下例:
5
......
4
......
10
......
......
用以下的典型结构:
int n;
while (cin>>n) {
......
}
只要输入流中还能读到整数值,就一直读下去,读到没有为止。典型的例子有A+B问
题。
1 4
2 8
10 12
29 32
......
例子程序如下:
int a,b;
while (cin>>a>>b) {
cout<<(a+b)<<endl;
}
如果用scanf,如下例:
while (scanf("%d %d",&a,%b)>0)
printf("%d\n",a+b);
2. 题目指定了测试用例的数量
通常输入的第一行指定了有多少个case,然后按要求读入这些case即可。大致结构
如下:
cin>>T;
for (int task*task<T;task++) {
......
}
3. 读入一行字符串然后再处理
在一些特定的情况下,我们需要把整行的字符(包括空格和'\t'等字符)读入并存到
一个连续的内存空间中。
通常用getline读入一行,包括空格和制表的'\t':
char buf[MAX_BUF_LEN];
cin.getline(buf,sizeof(buf));
fgets函数也有读入一整行的功能。
在处理字符串方面,推荐几个常用的处理函数:
strcpy/strncpy 字符串复制
strlen 求字符串长度
strcmp 比较两个字符串
strcat/strncat 字符串拼接
strtok 很有用的函数,用来分割字符串
strstr 字符串查找匹配
strchr 在字符串中查找一个字符
sprintf/snprintf 把一个指定格式的输出结果作为一个字符串的内容
注意问题:cin>> 和cin.getline 交替使用时要注意,cin>> 是取到回车符前。如果在
使用了cin>>之后下一个用到cin.getline的话,先要调用一个cin.getline把回车符号读
走。
--
※ 来源:. 华南木棉BBS bbs.gznet.edu.cn. [FROM: 211.66.6.147]※ 转寄:.华南木棉BB
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 210.21.224.236]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店