C++输入输出格式,及其他零碎知识的整合

来源:互联网 发布:淘宝 手机 假货 编辑:程序博客网 时间:2024/05/01 16:23

关于C++输入输出格式、以及其他容易忘记的知识的整合。
首先是题目:

输入一串大写字母串(包括空格),输出的Sum是每个英文字母在字母表中的位置及字符串的位置的乘积之和(空格为0)。

举例:

ACM: 1*1 + 2*3 + 3*13 = 46
MID CENTRAL: 1*13 + 2*9 + 3*4 + 4*0 + 5*3+ 6*5 + 7*14 + 8*20 + 9*18 + 10*1 + 11*12 = 650

输入输出格式:

(一块以‘#’结束的字母串块及一块结果输出块)

#include<iostream>using namespace std;int main(){    char a[256];//255会报错,若输入255个字符容易溢出    int count, i, re[256], j = 0;//re为存放结果的数组    cin.getline(a,256);//读入键盘输入(包括空格)    while(a[0]!= '#')//判结束标志    {        i = 0;count = 0;        while(a[i] != 0)//0是此字母串结束标志        {            if(a[i] == ' ') i++;            else            {                count = count + (i+1) * (a[i] - 64);                i++;            }        }        re[j] = count;        j ++;        cin.getline(a,256);    }    for(i = 0; i< j; i++)        cout<<re[i]<<endl;    return 0;}

一、输入输出格式(cin、getline、get的对比)

1. cin:不读入TAB、空格、回车。
原理:cin用空格回车确定字符串的界。当读到空格回车时,自动添加结束标志并清空缓冲池,同时丢弃缓冲区令输入结束的结束符。
2. getline:读一行数据。
原理:当遇到回车时才添加字符串结束标志,同时丢弃缓冲区的回车。当输入超长时,不会执行剩下的输入,出现错误。
用法:cin.getline(数组名,数组长度,结束符)。
3. get:读一行数据。
原理:同getline大体类似,当输入字符时不丢弃缓冲区的enter,输入字符串时丢弃enter,可是不丢弃结束符。当超长时,不会发生输入错误,把超出部分放在缓冲区中。
用法:cin.get(数组名,数组长度,结束符)。

参考资料:
关于缓冲区详解
C++ 读取键盘输入(cin/cin.getline()/cin.get()/cin.clear())
基于C++ cin、cin.get()、cin.getline()、getline()、gets()函数的使用详解

二、ACM错误提示

Compiling 代码正在后台编译
Restricted Function 代码中使用了不安全的函数
Compilation Error 代码编译错误,可以点击查看编译错误细节
Running 程序运行中
Time Limit Exceeded 程序超过了题目的时间限制
Memory Limit Exceeded 程序超过了题目的内存限制
Runtime Error:SIGFPE 程序运行时错误:浮点数异常
Runtime Error:SIGSEGV 程序运行时错误:段错误
Presentation Error 程序正确,但是输出格式有错误
Accepted 程序正确,题目已经正确解答
Wrong Answer 程序不正确

0 0
原创粉丝点击