c++第7章输入输出流概要1.ppt

c第7章输入输出流概要1

例7.7提问 第一个getline换成get 第二个getline换成getline(ch,20,’/’) 提问:在例7.1的基础上,如何把文件中的数据输出? 思路:把文件中的数据读入到内存(数组) 步骤: 1.文件对象应具有输入输出功能。 2.移动文件指针到开始处“file1.seekg(0)” 提问:将上例的二进制文件读入内存并送到显示器? 思路: 1.建立一文件对象该磁盘文件关联 2.建立一数组用户于接收磁盘文件的数据 例7.14? * * * * * *43)27) * * * * * * * streambuf是标准c++的一个类,每个输入输出流对象包含一个指向streambuf的指针.并且streambuf有一些可供调用的函数. 例如:为了访问streambuf,每个输入输出流对象包含一个成员函数rdbuf(),它返回的是一个指向对象streambuf的指针.通过这个指针可以对streambuf 对象进行存取. ifstream in(aa.txt);//文件 coutin.rubuf();//把文件存入输出流中.rubuf()返回的是streambuf指针哦!!! * * * * * * * * * 第二个参数比要读取的最大字符数大1(额外的一个字符用于存储结尾的空字符,以便将输入存储为一个字符串。 * * Cin.peek查看下一字符,并将它赋值给ch。然后,while的测试条件检查ch是否句点或换行符。 * Cin.peek查看下一字符,并将它赋值给ch。然后,while的测试条件检查ch是否句点或换行符。 * * * * * * * * * * * * * 第7章 输入输出流 * 2. peek函数 从输入流中读取一个字符,返回值是指针指向的当前字符,但它只是观测,指针仍停留在当前位置,并不后移。若把输入流比作一个栈类,则peek函数就相当于栈的成员函数front,而cin.get()则相当于栈的成员函数pop。 int main() { char ch; cin.get(ch); coutch; ch=cin.peek(); coutch; return 0; } 分析以下程序的运行结果: int main() { char ch; ch=cin.peek(); coutch; return 0; } 输入:abc 输出:ab 分析:执行第2行语句,用户输入abc,取出a给变量ch,输入流中数据为bc;bc为下一次接收输入的数据,执行第3行语句,输入的下一字符为b 第7章 输入输出流 * Peek函数应用实例:假如要读取输入,直到遇到换行符或句点,可用peek()查看下一字符,以此来判断是否继续:《C++ Primier》 int main() { char great_input[80]; char ch; int i=0; while((ch=cin.peek())!=.ch!=\n) cin.get(great_input[i++]); great_input[i]=\0; coutgreat_input; return 0; } 第7章 输入输出流 * 3. putback函数 其调用形式为 cin.putback(ch); 其作用是将前面用get或getline函数从输入流中读取的字符ch返回到输入流,插入到当前指针位置,以供后面读取。 例:7.9 完成三件事: 1.使用getline输出一个句子。 2.观看当前字符 3.将’I’插入到指针所指处 第7章 输入输出流 * 4. ignore函数 其调用形式为 cin,ignore(n, 终止字符) 作用:是跳过输入流中n个字符,或在遇到指定的终止字符时提前结束(此时跳过包括终止字符在内的若干字符)。如 ighore(5, ′A′)//跳过输入流中5个字符,遇 //′A′后就不再跳了 例7.10 使用ignore前后的代码对比 第7章 输入输出流 * 使用ignore的代码 int main() { char ch[20]; cin.get(ch,20,/); coutThe first part is:chendl; cin.ignore(); cin.get(ch,20,/); coutThe second part is:ch; return 0; } 未使用ignore的代码 int main() { char ch[20]; cin.get(ch,20,/); coutThe first part is:chendl; cin.get(ch,20,/);

文档评论(0)

1亿VIP精品文档

相关文档