c++简单程序设计-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);                  
    //设置数据域宽度 
    cout<<813<<815<<'\n';
    cout.unsetf(ios_base::adjustfield);      
    //取消右对齐,全部左对齐 
    cout.precision(2);
    cout.setf(ios_base::uppercase|ios_base::scientific);   
    //对于十六进制数值显示大写字母A到F,对于科学格式显示大写字母E 
    //并以科学格式显示浮点数值 
    cout<<831.0;
    cout.flags(original_flags);
    //恢复原参数设置
    return 0;
} 

11-3

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ofstream out("text1.text");     
    out << "已成功写入文件!";
    out.close();
    return 0;
} 

11-4

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main() {
    ifstream in("text1.text");
    string s1;
    getline(in, s1);
    cout<<s1;
    in.close();
    return 0;
}

应用练习

1.

#include<iostream>
#include<fstream>
#include<string>
#include<cstdlib>
#include<ctime>
using namespace std;

int main(){
    ifstream in("list.txt");   //打开list的文本 
    int i=0;
    string stu[83];
    string s1;
    while (getline(in, s1)){   //输入每行数据,直到结束
        stu[i]=s1;
        i++;
    }
    in.close();
    
    ofstream out("roll.txt");  //输出为roll的文本 
    srand(time(NULL));         //设置随机数 
    for(int j=0;j<5;j++){
        int x=rand()%83;
        cout<<stu[x]<<endl;
        out<<stu[x]<<endl;
    }
    out.close();
    return 0;    
} 

2.

#include<iostream>
#include<fstream>
#include<string>
#include<iomanip>
using namespace std;
int main() { 
    ifstream in("ceshi.txt"); 
    if (!in) {
        cout << "error" << endl;
        return 1;
     }
    string s1; 
    int x,ch=0,word=0,line=0;
    while (getline(in, s1)) {  //逐行输入,直接计算行数 
        line++; 
        x = s1.size();         //计算输入字符串长度 
        ch+=x;                 //每行相加,即为总字符数 
        for (int i = 0; i <=x; i++) {
            if (s1[i] < 'A'||s1[i] > 'z') {  //只要不是字母都算为单词 
                word++;
                if(s1[i]==','||(s1[i]=='.'&&s1[i+1]=='\n')){  //一般这些符号后会有空格,所以去重 
                    word--;
                }         
            }
        }
        word--;  //不知道为什么每行都多出了一个单词,所以减去 
    }
    in.close();
    cout << "字符数:"<<ch<<endl;
    cout << "单词数:" <<word<<endl;
    cout << "行数:"<<line<<endl;
    return 0;
}

 

posted @ 2018-06-20 21:51  tensheep  阅读(147)  评论(0编辑  收藏  举报