ACM 输入输出方法总结 完整版 已调试通过 可运行

来源:互联网 发布:17173英雄联盟数据 编辑:程序博客网 时间:2024/05/22 03:10

ACM 输入输出标准大全 总结 完整版 已验证通过

#include<iostream>#include<stdio.h>#include<stdlib.h>//#define RE //如果要重定向输入输出流就取消注释此行代码using namespace std;int main(){//1. 大量数据时候用scanf和printf ,而不用cin,cout,因为后者速度太慢,可能会超时。//  //读取字符//  char ch;//  //  getchar();  //读取换行符,即一个空行 //  while((ch = getchar()) != EOF){//      cout<<ch<<endl;//  }////错误 因为 gets里读取字符串数组 string str;//[Error] cannot convert 'std::string {aka std::basic_string<char>}' to 'char*' for argument '1' to 'char* gets(char*)'// 正确如下: //  char str[10];//  gets(str);  //读取空行 //  while((gets(str) ) != NULL){//      cout<<str<<endl;//  }   //  double n;//  while(scanf("%lf", &n), n != 0){    //以0或-1结束 //      cout<<n<<endl;//  } //  double m;//  while(scanf("%lf %lf", &n, &m), n || m){    //n和m都是0时候结束 //      cout<<n<<" "<<m<<endl;//  } //  // 读取一行字符串,输出时候去掉了空格 //  const int BUFFER = 10;//  char str[BUFFER];//  while(cin>>str){     //      cout<<str;//  } //测试上面的代码     //for(int i = 0; i < 10; i++)//  char str[10];//  int i = 0;//  while(cin>>str){//      cout<<str[i]<<endl;//  }    //读取一行 //  char str[10];   //若想读很长的需要把数组开得足够大,否则就会退出 //  while(cin.getline(str, 10)){//      cout<<str<<endl;//  } //// 只要注释了前面#define那一行就不会重定向了 //#ifdef RE //开启文件,并将标准输入输出重定向到文件 //    freopen("in.txt","r",stdin); //    freopen("out.txt","w",stdout); //#endif //  int n, m;//  cin>>n>>m;//  cout<<m<<n<<endl; //  cout<<"hello world!";  //切记 输入输出代码要在这里 //#ifdef RE //关闭文件 //    fclose(stdin); //    fclose(stdout); //#endif     char str[100],str1[100],str2[100];    gets(str);    //[Error] stray '\241' in program 说明有非法字符,需要把这一行重新输入一遍,确定是英文字符     sscanf(str, "%s%s", str1, str2);    //将读入的一整行字符串按空格,制表符或回车符分割成两个字符串。    cout<<str1<<endl<<str2<<endl;     sscanf("123456", "%4s", str);//  getline用法为:    getline(cin, str);    //第一个参数就是标准输入流cin ,第二个参数是接收读入数据的string对象,本来还有第三个参数,是结束符的标志,但通常用它默认的就可以了,所以不用管。    //注意区分这个getline和cin.getline的区别:    //cin.getline的用法如下:    char str[20];     cin.getline(str,20); //表示从读入的一行字符串中,取最多20各字符放入字符数组str中,注意此处的str是字符数组,而上面的str是string对象。    return 0;} /*格式字符d  以十进制形式输出带符号整数(正数不输出符号) o  以八进制形式输出无符号整数(不输出前缀O) x  以十六进制形式输出无符号整数(不输出前缀OX) u  以十进制形式输出无符号整数 f  以小数形式输出单精度实数 lf以小数形式输出双精度实数e  以指数形式输出单、双精度实数 g  以%f%e中较短的输出宽度输出单、双精度实数 c  输出单个字符 s  输出字符串 - 结果左对齐,右边填充空格+  输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号printf(“%020.4”);  表示输出精确到小数点后4位,输出占20位,若有空余的位补0.double 必须用%lf scanf可以滤去一些不想要的东西。举例说明如下:比如输入为日期 yyyy-mm-dd,就可以这样写:int year,moth,day;scanf(“%d-%d-%d”,&year,&moth,&day);*/ 
原创粉丝点击