实验7流类库和输入输出

基础练习:

11-7:

源代码:

#include<iostream>
using namespace std;
int main() {
    ios_base::fmtflags original_flags = cout.flags();//保存现在的格式化参数的设置
    cout << 812 << ‘|‘;
    cout.setf(ios_base::left, ios_base::adjustfield);//左对齐值
    cout.width(10);//设置输出宽度为10
    cout << 813 << 815 << ‘\n‘;
    cout.unsetf(ios_base::adjustfield);//取消之前调用setf()的效果
    cout.precision(2);
    cout.setf(ios_base::uppercase | ios_base::scientific);//使用科学技术法输出,且对于16进制输出时,使用大写字母,E表示。
    cout << 831.0;
    cout.flags(original_flags);//恢复初始参数
    return 0;
}

11-3-4:

源代码:

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main(){
    ofstream os("test1.txt");
    if (os) {
        os << "已成功写入文件!";
    }
    os.close();
    ifstream is("test1.txt");
    if (is) {
        string s1;
        getline(is, s1);
        cout << s1;
    }
    is.close();
    return 0;
}

运行效果:

应用练习:

(1)

源代码:

#include<iostream>
#include<fstream>
#include<string>
#include<cstdlib>
#include<ctime>
using namespace std;
struct stu {
    int num;
    string num2, name, room;
}student[100];
int main() {
    ifstream is("list.txt");
    if (!is) {
        cout << "ERROR" << endl;
        return 1;
    }
    int i = 0;
    while (is >> student[i].num >> student[i].num2 >> student[i].name >> student[i].room) {
        i++;
    }
    is.close();
    ofstream os("roll.txt");
    srand((unsigned)time(NULL));
    for (int i = 0; i < 5; i++) {
        int m = (rand() % 83);
        cout << student[m].num << " " << student[m].num2 << " " << student[m].name << " " << student[m].room << endl;
        os << student[m].num << " " << student[m].num2 << " " << student[m].name << " " << student[m].room << endl;
    }
    os.close();
    return 0;
}

运行效果:

(2)用getline()函数得出行数line;对每行用getline()得到的字符串s1测长度,即s1.size(),然后将每行的s1长度都加起来,得到字符数;求单词数则可以对每行的字符逐个检查,如果是字母且后一个字符为空格或标点符号,则是单词,将每行的单词数相加,即可得到单词总数。

源代码:

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main() {
    ifstream is("article.txt");
    int line = 0; int num1 = 0; int word = 0;
    if (is) {
        string s1; int m;
        while (getline(is, s1)) {
            m = s1.size();
            line++;
            num1 = num1 + m;
            for (int i = 0; i < m; i++) {
                if (s1[i] >= ‘A‘&&s1[i] <= ‘Z‘ || s1[i] >= ‘a‘&&s1[i] <= ‘z‘) {
                    if (s1[i + 1] >= ‘!‘&&s1[i + 1] <= ‘/‘||s1[i+1]==‘ ‘||s1[i+1]>=‘:‘&&s1[i+1]<=‘?‘) {
                        word++;
                    }
                }
            }
        }
    }
    is.close();
    cout <<"行数为:"<< line << " 字符数为:" << num1 <<" 单词数为:"<<word<< endl;
    return 0;
}

运行效果:

文件:

总结与体会:

此次实验是目前为止我感觉最为棘手的一次,困扰了整整一天。可能是因为以前没怎么接触过吧,刚开始感觉一筹莫展。我在应用练习的第一题花了大量时间,一开始无论如何都无法输入;我研究了一整个下午,没办法去参考别的同学的答案,换了四五种,却毫无进展;当我最后解决了问题之后,反而忘了最初自己的想法,实在是悲哀。在此我要感谢“MINt超”同学,我看到了他对另一个同学的评论后找到了解决办法,即自己新建一个list.txt,不直接用附件里的list,虽然现在仍不知道为何会出问题。而出了这么一档子事之后对于实验的选做部分我也实在是有心无力了,或许以后能力足够了会回来完善……

原文地址:https://www.cnblogs.com/hero-1/p/9201231.html

时间: 2024-10-17 12:13:08

实验7流类库和输入输出的相关文章

实验7 流类库和输入输出

基础练习 (1)课本习题11-7 #include <iostream> using namespace std; int main() { ios_base::fmtflags original_flags = cout.flags(); //保存格式化参数设置 cout<< 812<<'|'; cout.setf(ios_base::left,ios_base::adjustfield); //设置对齐方式为左对齐 cout.width(10); //将输出宽度设置

C++学习笔记55:流类库与输入输出

I/O流的概念及流类库的结构 程序与外界环境的信息交换 当程序与外界环境进行信息交换时,存在着两个对象:程序中的对象,文件对象. 流是一种抽象,负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动: 流对象与文件操作 程序建立一个流对象 指定这个流对象与某个文件对象建立连接 程序操作流对象 流对象通过文件系统对所连接的文件对象产生作用 提取与插入 读操作在流数据抽象中被称为从流中提取: 写操作被称为向流中写入: 最重要的三个输出流:ostream ofstream ostringstr

C++:流类库与输入输出

7.2.1 C++的输入输出流 ios:流基类(抽象类) istream:通用输入流类和其他输入流的基类 ostream:通用输出流类和其他输出类的基类 iostream:通用输入输出流类和其他输入输出流类的基类(以下的派生类对象有cin.cout.cerr.clog) ifstream:输入文件流类 ofstream:输出文件流类 fstream:输入输出文件流 istrstream:输入字符串流类 ostrstream:输出字符串流类 strstream:输入输出字符串类 iostream_

实验6 流类库与I/O

part1 1.合并两个文件 #include <iostream> #include <fstream> #include <string> #include <cstdlib> using namespace std; int main() { string filename1, filename2, newfilename; cout << "输入要合并的两个文件名: " ; cin >> filename1

CPP流类库与输入输出

最重要的三个输出流 ostream ofstream ostringstream 预先定义的输出流对象 cout 标准输出 cerr 标准错误输出,没有缓冲,发送给它的内容立即被输出. clog 类似于cerr,但是有缓冲,缓冲区满时被输出. 标准输出换向 ofstream fout("b.out");//自动打开文件,并且绑定到fout这个对象 streambuf* pOld =cout.rdbuf(fout.rdbuf()); cout的绑定到fout,而不是标准输入输出设备(显示

流类库和文件

1.流类库 (1).C++中没有输入输出,标准库中包含一个I/O流类库. C语言中printf 和scanf 称为函数: 输出到屏幕 C++中cout和cin称为对象:          输入是键盘 (2).C++流类库中定义4个全局流对象,cin.cout.cerr.clog cin 标准输入流对象,键盘 cout标准输出流,屏幕 cerr和clog标准错误输出流, 屏幕 其中cin.cout.clog是带缓冲区的,缓冲区由streambuf类对象来管理,cerr非缓冲区,一旦错误发生立即显示

流类库

第10章 输入/输出流 I/O(输入/输出)流类库提供对象之间的数据交互服务. 流类库预定义了一批流对象,连接常用的外部设备. 程序员可以定义所需的I/O流对象,使用流类库提供的工作方式实现数据传输. 10.1 流类和流对象 10.2 标志流和流对象 10.3 格式控制 10.4 串流 10.5 文件处理 小结 10.1 流类和流对象 程序中,对数据的输入/输出是以字节流实现的. 应用程序对字节序列作出各种数据解释. I/O系统的任务就是在内存和外部设备之间稳定可靠地传输数据和解释数据. 流类对

9、流类库与输入/输出

就像C语言一样,c++语言中也没有输入/输出语句.但c++编译系统带有一个面向对象的输入/输出软件爱你包,它就是I/O流类库. 1.I/O流的概念及流类库结构 I/O流类库是C语言中I/O函数在面向对象的程序设计方法中的一个替换产品. 当程序与外界环境进行信息交换时,存在着两个对象,一个是程序中的对象,另一个是文件对象. 流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动.程序建立一个流对象,并指定这个流对象与某个文件对象建立连接,程序操作流对象,流对象通过文件系统对

南邮JAVA程序设计实验3 流处理程序设计

南邮JAVA程序设计实验3  流处理程序设计 实验目的: 要求学生能在学习和理解课堂学习内容中JAVA流编程理论的基础上,学习并逐步掌握JAVA流程序的编写和调试,学习根据处理需求对不同流的正确选择使用和组合使用方法. 实验内容: 设计和编写一个程序从键盘读入一行字符串,将其写入一个文本文件中,再编写另一个程序从文本文件中读入字符串并在命令行窗口显示出来. 实验程序1: 用数据的基本的读入Scanner读入一行,用缓冲流写入文件. import java.io.*; import java.ut