C++标准设备的输入输出(cin,cout,cerr,clog,,)

合集下载

C++填空题1

C++填空题1

复习:C++填空题1.C++的流库预定义了4个流,它们是cin、cout、clog 和___。

答案:cerr [解析]分别是标准输入、输出、标准错误流(缓冲)和标准错误流 (无缓冲标准错误)2.每个对象都是所属类的一个___。

答案:实例3.在已经定义了整型指针p后,为了得到一个包括10个整数的数组并由p所指向,应使用语句___。

答案: int *p=new int[10];4.函数模板中紧随template之后尖括号内的类型参数都要冠以保留字___。

答案:class [解析]类模板template <class T1,class T2,...,class Tn>5.定义类的动态对象数组时,系统只能够自动调用该类的___构造函数对其进行初始化。

答案:无参[解析]使用new创建对象数组,调用无参构造函数。

6.表达式cout<<end1 还可表示为___。

答案:‘\n’[解析]endl与字符常量‘\n’等价。

7.在C++中,访问一个指针所指向的对象的成员所用的指向运算符是___。

答案:->[解析]指针使用成员方法:“->”指向运算符和“.”成员访问运算符。

8.假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调用___构造函数来完成此功能。

答案:复制或拷贝[解析]复制或拷贝构造函数就是用对象初始化新的对象。

9.对赋值运算符进行重载时,应声明为___函数。

答案:类成员 [解析]运算符重载的方法有友元或者成员函数两种途径,但是赋值运算符只能使用成员函数的方法来实现。

10.如果要把A类成员函数f()且返回值为void声明为类B的友元函数,则应在类B的定义中加入的语句___。

答案:friend void A::f();[解析]成员函数作为另一个类的友元函数,格式为:friend 返回类型 类名::函数(形参)。

11.String 类的___方法返回查找到的字符串在主串的位置。

cin与cout用法

cin与cout用法

cin与cout用法
cin和cout是C++语言中常用的输入输出流对象。

其中,cin用于从用户输入中读取数据,而cout用于向屏幕或其他输出设备输出数据。

cin的用法如下:
1. 首先需要包含头文件:`#include<iostream>`
2.使用符号`>>`进行输入操作,例如:`cin >> 变量名`
3.读取的数据会存储到对应的变量中。

cout的用法如下:
1. 首先需要包含头文件:`#include<iostream>`
2.使用符号`<<`进行输出操作,例如:`cout << 输出内容`
3.可以同时输出多个内容,例如`cout << 内容1 << 内容2 << ...`
4. 输出结束后可以使用endl进行换行,即:`cout << 输出内容
<<endl`。

需要注意的是,输入的数据类型和变量类型需要保持一致,如果不一致会导致错误或不符合预期。

同样地,输出的内容需要使用正确的格式化方式才能显示正确的结果。

c++文本文件打开读写的常用方法

c++文本文件打开读写的常用方法

c++文本文件打开读写的常用方法一、文本文件的打开1、使用C++中标准的文件输入和输出流操作文本文件<iostream>头文件提供标准文件输入输出流std::cin,std::cout,std::cerr,std::clog这些标准输入输出流是指C++语言中自带的几个文件输入输出流。

比如在程序中,若要从控制台读取输入:std::cin >> a;这条语句将从控制台(也就是键盘)获取输入,并将其输入存储在a中。

如果要从文件中读取数据,可以使用标准输入流std::ifstream 完成。

std::ifstream可以被用来从文件中读取输入。

具体实现方法如下:// step 1: include the input stream#include <fstream>// step 2: open filestd::ifstream infile('file.txt');// step 3: read input from fileint data;infile >> data;// step 4: close fileinfile.close();2、使用C++的平台独立文件输出流操作文本文件C++中有一套不依赖具体平台的文件输入输出流。

它们是std::fstream,std::ifstream和std::ofstream。

这三个类分别用来操作文件的输入流,输出流和读写流。

具体使用方法如下:// step 1: include the input/output stream#include <fstream>// step 2: open filestd::fstream f('file.txt', std::ios::in | std::ios::out); // step 3: read/write to filechar c;f.get(c);f.put(c);// step 4: close filef.close();二、文本文件的读取要将文本文件读入内存,程序需要打开文本文件,然后以块的形式从磁盘加载到内存。

转载C++输入与输出—cout和cin的用法

转载C++输入与输出—cout和cin的用法

转载C++输⼊与输出—cout和cin的⽤法转载⽹址:输⼊和输出并不是C++语⾔中的正式组成成分。C和C++本⾝都没有为输⼊和输出提供专门的语句结构。输⼊输出不是由C++本⾝定义的,⽽是在编译系统提供的I/O库中定义的。C++的输出和输⼊是⽤“流”(stream)的⽅式实现的。图3.2和图3.3表⽰C++通过流进⾏输⼊输出的过程。有关流对象cin、cout和流运算符的定义等信息是存放在C++的输⼊输出流库中的,因此如果在程序中使⽤cin、cout和流运算符,就必须使⽤预处理命令把头⽂件stream包含到本⽂件中:#include <iostream>尽管cin和cout不是C++本⾝提供的语句,但是在不致混淆的情况下,为了叙述⽅便,常常把由cin和流提取运算符“>>”实现输⼊的语句称为输⼊语句或cin语句,把由cout和流插⼊运算符“<<”实现输出的语句称为输出语句或cout语句。根据C++的语法,凡是能实现某种操作⽽且最后以分号结束的都是语句。⼀、输⼊流与输出流的基本操作cout语句的⼀般格式为:cout<<表达式1<<表达式2<<……<<表达式n;cin语句的⼀般格式为:cin>>变量1>>变量2>>……>>变量n;在定义流对象时,系统会在内存中开辟⼀段缓冲区,⽤来暂存输⼊输出流的数据。在执⾏cout语句时,先把插⼊的数据顺序存放在输出缓冲区中,直到输出缓冲区满或遇到cout语句中的endl(或'\n',ends,flush)为⽌,此时将缓冲区中已有的数据⼀起输出,并清空缓冲区。输出流中的数据在系统默认的设备(⼀般为显⽰器)输出。⼀个cout语句可以分写成若⼲⾏。如cout<<"This is a simple C++ program."<<endl;可以写成cout<<"This is " //注意⾏末尾⽆分号<<"a C++ "<<"program."<<endl; //语句最后有分号也可写成多个cout语句,即cout<<"This is "; //语句末尾有分号cout <<"a C++ ";cout <<"program.";cout<<endl;以上3种情况的输出均为This is a simple C++ program.注意不能⽤⼀个插⼊运算符“<<”插⼊多个输出项,如:cout<<a,b,c; //错误,不能⼀次插⼊多项cout<<a+b+c; //正确,这是⼀个表达式,作为⼀项在⽤cout输出时,⽤户不必通知计算机按何种类型输出,系统会⾃动判别输出数据的类型,使输出的数据按相应的类型输出。如已定义a为int型,b 为float型,c为char型,则cout<<a<<' '<<b<<' '<<c<<endl;会以下⾯的形式输出:4 345.789 a与cout类似,⼀个cin语句可以分写成若⼲⾏。如cin>>a>>b>>c>>d;可以写成cin>>a //注意⾏末尾⽆分号>>b //这样写可能看起来清晰些>>c>>d;也可以写成cin>>a;cin>>b;cin>>c;cin>>d;以上3种情况均可以从键盘输⼊: 1 2 3 4 ↙也可以分多⾏输⼊数据:1↙2 3↙4↙在⽤cin输⼊时,系统也会根据变量的类型从输⼊流中提取相应长度的字节。如有char c1,c2;int a;float b;cin>>c1>>c2>>a>>b;如果输⼊1234 56.78↙注意: 34后⾯应该有空格以便和56.78分隔开。也可以按下⾯格式输⼊:1 2 34 56.78↙ (在1和2之间有空格)不能⽤cin语句把空格字符和回车换⾏符作为字符输⼊给字符变量,它们将被跳过。如果想将空格字符或回车换⾏符(或任何其他键盘上的字符)输⼊给字符变量,可以⽤3.4.3节介绍的getchar函数。在组织输⼊流数据时,要仔细分析cin语句中变量的类型,按照相应的格式输⼊,否则容易出错。⼆、在输⼊流与输出流中使⽤控制符上⾯介绍的是使⽤cout和cin时的默认格式。但有时⼈们在输⼊输出时有⼀些特殊的要求,如在输出实数时规定字段宽度,只保留两位⼩数,数据向左或向右对齐等。C++提供了在输⼊输出流中使⽤的控制符(有的书中称为操纵符)。需要注意的是: 如果使⽤了控制符,在程序单位的开头除了要加iostream头⽂件外,还要加iomanip头⽂件。举例: 输出双精度数。double a=123.456789012345;对a赋初值(1) cout<<a;输出: 123.456(2) cout<<setprecision(9)<<a;输出: 123.456789(3) cout<<setprecision(6);恢复默认格式(精度为6)(4) cout<< setiosflags(ios∷fixed);输出: 123.456789(5) cout<<setiosflags(ios∷fixed)<<setprecision(8)<<a;输出: 123.45678901(6) cout<<setiosflags(ios∷scientific)<<a;输出: 1.234568e+02(7) cout<<setiosflags(ios∷scientific)<<setprecision(4)<<a; 输出: 1.2346e02下⾯是整数输出的例⼦:int b=123456;对b赋初值(1) cout<<b;输出: 123456(2) cout<<hex<<b; 输出: 1e240(3) cout<<setiosflags(ios∷uppercase)<<b;输出: 1E240(4) cout<<setw(10)<<b<<','<<b; 输出: 123456,123456(5) cout<<setfill('*')<<setw(10)<<b;输出: **** 123456(6) cout<<setiosflags(ios∷showpos)<<b;输出: +123456如果在多个cout语句中使⽤相同的setw(n),并使⽤setiosflags(ios∷right),可以实现各⾏数据右对齐,如果指定相同的精度,可以实现上下⼩数点对齐。例3.1 各⾏⼩数点对齐。#include <iostream>#include <iomanip>using namespace std;int main( ){double a=123.456,b=3.14159,c=-3214.67;cout<<setiosflags(ios∷fixed)<<setiosflags(ios∷right)<<setprecision(2);cout<<setw(10)<<a<<endl;cout<<setw(10)<<b<<endl;cout<<setw(10)<<c<<endl;return0;}输出如下:123.46 (字段宽度为10,右对齐,取两位⼩数)3.14-3214.67先统⼀设置定点形式输出、取两位⼩数、右对齐。这些设置对其后的输出均有效(除⾮重新设置),⽽setw只对其后⼀个输出项有效,因此必须在输出a,b,c之前都要写setw(10)。学C++的时候,这⼏个输⼊函数弄的有点迷糊;这⾥做个⼩结,为了⾃⼰复习,也希望对后来者能有所帮助,如果有差错的地⽅还请各位多多指教(本⽂所有程序均通过VC 6.0运⾏)转载请保留作者信息;1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>>⽤法1:最基本,也是最常⽤的⽤法,输⼊⼀个数字:#include <iostream>using namespace std;main (){int a,b;cin>>a>>b;cout<<a+b<<endl;}输⼊:2[回车]3[回车]输出:5⽤法2:接受⼀个字符串,遇“空格”、“TAB”、“回车”都结束#include <iostream>using namespace std;main (){char a[20];cin>>a;cout<<a<<endl;}输⼊:jkljkljkl输出:jkljkljkl输⼊:jkljkl jkljkl //遇空格结束输出:jkljkl2、cin.get()⽤法1: cin.get(字符变量名)可以⽤来接收字符#include <iostream>using namespace std;main (){char ch;ch=cin.get(); //或者cin.get(ch);cout<<ch<<endl;}输⼊:jljkljkl输出:j⽤法2:cin.get(字符数组名,接收字符数⽬)⽤来接收⼀⾏字符串,可以接收空格#include <iostream>using namespace std;main (){char a[20];cin.get(a,20);cout<<a<<endl;}输⼊:jkl jkl jkl输出:jkl jkl jkl输⼊:abcdeabcdeabcdeabcdeabcde (输⼊25个字符)输出:abcdeabcdeabcdeabcd (接收19个字符+1个'\0')⽤法3:cin.get(⽆参数)没有参数主要是⽤于舍弃输⼊流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数⽬)的不⾜.这个我还不知道怎么⽤,知道的前辈请赐教;3、cin.getline() // 接受⼀个字符串,可以接收空格并输出#include <iostream>using namespace std;main (){char m[20];cin.getline(m,5);cout<<m<<endl;}输⼊:jkljkljkl输出:jklj接受5个字符到m中,其中最后⼀个为'\0',所以只看到4个字符输出;如果把5改成20:输⼊:jkljkljkl输出:jkljkljkl输⼊:jklf fjlsjf fjsdklf输出:jklf fjlsjf fjsdklf//延伸://cin.getline()实际上有三个参数,cin.getline(接受字符串的看哦那间m,接受个数5,结束字符)//当第三个参数省略时,系统默认为'\0'//如果将例⼦中cin.getline()改为cin.getline(m,5,'a');当输⼊jlkjkljkl时输出jklj,输⼊jkaljkljkl时,输出jk当⽤在多维数组中的时候,也可以⽤cin.getline(m[i],20)之类的⽤法:#include<iostream>#include<string>using namespace std;main (){char m[3][20];for(int i=0;i<3;i++){cout<<"\n请输⼊第"<<i+1<<"个字符串:"<<endl;cin.getline(m[i],20);}cout<<endl;for(int j=0;j<3;j++)cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;}请输⼊第1个字符串:kskr1请输⼊第2个字符串:kskr2请输⼊第3个字符串:kskr3输出m[0]的值:kskr1输出m[1]的值:kskr2输出m[2]的值:kskr34、getline() // 接受⼀个字符串,可以接收空格并输出,需包含“#include<string>”#include<iostream>#include<string>using namespace std;main (){string str;getline(cin,str);cout<<str<<endl;}输⼊:jkljkljkl输出:jkljkljkl输⼊:jkl jfksldfj jklsjfl输出:jkl jfksldfj jklsjfl和cin.getline()类似,但是cin.getline()属于istream流,⽽getline()属于string流,是不⼀样的两个函数5、gets() // 接受⼀个字符串,可以接收空格并输出,需包含“#include<string>”#include<iostream>#include<string>using namespace std;main (){char m[20];gets(m); //不能写成m=gets();cout<<m<<endl;}输⼊:jkljkljkl输出:jkljkljkl输⼊:jkl jkl jkl输出:jkl jkl jkl类似cin.getline()⾥⾯的⼀个例⼦,gets()同样可以⽤在多维数组⾥⾯:#include<iostream>#include<string>using namespace std;main (){char m[3][20];for(int i=0;i<3;i++){cout<<"\n请输⼊第"<<i+1<<"个字符串:"<<endl;gets(m[i]);}cout<<endl;for(int j=0;j<3;j++)cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;}请输⼊第1个字符串:kskr1请输⼊第2个字符串:kskr2请输⼊第3个字符串:kskr3输出m[0]的值:kskr1输出m[1]的值:kskr2输出m[2]的值:kskr3⾃我感觉gets()和cin.getline()的⽤法很类似,只不过cin.getline()多⼀个参数罢了;这⾥顺带说明⼀下,对于本⽂中的这个kskr1,kskr2,kskr3的例⼦,对于cin>>也可以适⽤,原因是这⾥输⼊的没有空格,如果输⼊了空格,⽐如“ks kr jkl[回车]”那么cin就会已经接收到3个字符串,“ks,kr,jkl”;再如“kskr 1[回车]kskr 2[回车]”,那么则接收“kskr,1,kskr”;这不是我们所要的结果!⽽cin.getline()和gets()因为可以接收空格,所以不会产⽣这个错误;6、getchar() //接受⼀个字符,需包含“#include<string>”#include<iostream>#include<string>using namespace std;main (){char ch;ch=getchar(); //不能写成getchar(ch);cout<<ch<<endl;}输⼊:jkljkljkl输出:j。

c++流类库与输入输出习题答案

c++流类库与输入输出习题答案

double b=2345.67890; char c[100]; cout<<setfill('*'); cout<<left<<setw(12)<<a<<endl; cout<<right<<setw(12)<<a<<endl; cout<<hex<<a<<'\t'<<dec<<a<<'\t'<<oct<<a<<endl; cout<<scientific<<b<<'\t'<<fixed<<b<<endl; return 0; } 4.2 编写一程序,将两个文件合并成一个文件。 #include<iostream> #include<fstream> using namespace std; int main(){ int i=1; char c[1000]; ifstream ifile1("D:\\10_4_3.cpp"); ifstream ifile2("D:\\10_4_4.cpp"); ofstream ofile("D:\\r10_4.cpp"); while(!ifile1.eof()){ ifile1.getline(c,999); ofile<<c<<endl; } while(!ifile2.eof()){ ifile2.getline(c,999); ofile<<c<<endl; } ifile1.close(); ifile2.close(); ofile.close(); return 0; } 4.3 编写一程序,统计一篇英文文章中单词的个数与行数。 #include<iostream> #include<fstream> using namespace std; bool isalph(char); int main(){ ifstream ifile("E:\\lenovo\\english\\daily.doc"); char text[1000]; bool inword=false; int rows=0,words=0; int i; while(!ifile.eof()){

习题5

习题5
{
cout.fill('*');
cout.width(10);
cout<<setiosflags(ios::left)<<123.45<<endl;
}
A. ****123.45B. **123.45**C. 123.45****D. ***123.45*
10、运行以下程序,若输入This is a book..<回车>,则程序的输出结果是(A)。
12、下列打开文件的表达式中,(C)是错误的。
A. ofstream ofile; ofile.open("abc.txt",ios::binary);
B. fstream iofile; iofile.open("abc.txt",ios::ate);
C. ifstream ifile("abc.txt");
5、进行文件操作时需要包含stdio.h文件。错
6、在C++中,打开一个文件就是将这个文件与一个流建立关联,关闭一个文件就是取消这种关联。对
7、控制格式输入/输出操作符中,setfill()是设置填充字符的。对
8、在ios中提供控制格式的标志位中,oct是转换为八进制形式的标志位。对
9、C++中的输入/输出是以字节流的形式实现的。对
14、以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是(D)。
A. ofstream myfile; myfile.open("d:ofile.txt");
B. ofstream *myfile=new ofstream; myfile->open("d:ofile.txt");

c++标准库参考手册

c++标准库参考手册

c++标准库参考手册C++标准库是C++编程语言的核心组成部分,它提供了丰富的功能和工具,方便开发人员进行各种类型的编程工作。

C++标准库包括多个部分,比如输入输出、容器、算法、字符串处理、多线程支持等等。

以下是C++标准库的一些重要部分和功能:1. 输入输出库(iostream),提供了用于输入和输出的类和函数,包括cin、cout、cerr、clog等对象,以及对文件操作的支持。

2. 容器(containers),包括vector、list、map、set等多种数据结构,用于存储和管理数据。

3. 算法(algorithms),提供了大量的算法,比如排序、查找、合并等,可以方便地对容器中的数据进行处理。

4. 字符串处理(string),包括对字符串的操作和处理的类和函数,比如string、stringstream等。

5. 多线程支持(thread),提供了多线程编程的支持,包括线程的创建、管理和同步等功能。

6. 数学库(cmath),提供了数学运算相关的函数和常量,比如三角函数、指数函数、对数函数等。

除了以上列举的部分外,C++标准库还包括其他部分,比如输入输出流库(fstream)、日期和时间库(chrono)、正则表达式库(regex)等。

这些部分提供了丰富的功能和工具,可以满足各种编程需求。

对于C++标准库的具体使用和功能细节,可以参考C++标准库的参考手册,例如《C++ Primer》、《C++标准库参考手册》等书籍,或者查阅官方文档。

阅读这些参考资料可以帮助开发人员更好地理解和使用C++标准库,提高编程效率和代码质量。

同时,也可以通过阅读源码和实际编程练习来加深对C++标准库的理解和掌握。

希望这些信息对你有所帮助。

C语言的标准输入输出格式

C语言的标准输入输出格式

C语⾔的标准输⼊输出格式C语⾔标准库概述 1)库函数分类 我们暂时需要记住的有: 标准输⼊输出函数库:stdio 数学应⽤函数库:math 字符串处理函数库:string 2)调⽤函数库时,我们需要预编译指令: 即://或者#include"头⽂件名"需要注意的是,第⼀种写法,⼀般在使⽤标准函数库时使⽤,第⼆种写法,⼀般在使⽤⽤户⾃⼰定义的函数库时使⽤。

格式输出函数:printf 1)前⾔: 从计算机向外部设备输出信息称为输出,即将计算机内的信息以打印或者存储的形式转到终端。

printf函数在<stdio.h>函数库中 预编译指令为:#include<stdio.h> 2)标准格式输出: printf("格式输出控制表列",输出参数表列); 格式输出控制表列包括普通字符和格式字符组成,普通字符如:hello,world; 格式字符以%开头,后跟⼀个字符表⽰数据类型。

如:%d,%f等。

输出参数表列在控制表列中如果没有格式字符,可以省略:如:printf("Hello,world!"); 这⾥,我们给出两个实例帮助理解:printf("Hello,world!");printf("%d",100);printf("521%d!",1314); 3)格式控制符 在明⽩输出函数的基本使⽤⽅法后,我们剖析⼀下格式控制符。

1、%d格式 标准输出函数中以%作为格式输出控制索引。

%d是以⼗进制在屏幕上显⽰输出参数表列的值。

当然输出参数表列可以为字符型,整型,浮点型等类型,不过最终都以10进制输出。

我们看⼀个例⼦:main(){char c='A';int a=1,b=2;printf("c=%d,a/b=%d,b/a=%d,(float)a/b=%d",c,a/b,b/a,(float)a/b);printf("123.456=%d",123.456);printf("%d");reeturn 0;}最终的输出结果出乎我们意料,c=65,a/b=0,b/a=2,(float)a/b=0123.45=4466765992367460 我们在这⾥解释⼀下,⾸先字符型的'A'在ASICC中的数值是65,所以最终以⼗进制输出的是65;由于,a/b的值理应为0.5,在这⾥,由于是整型输出,所以⼩数部分被截断,最终的结果为0,同理,我们不难理解最后的(float)是什么情况,那么b/a的结果显然是2,我们不在阐述。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档