实验七 流类库与输入输出

在实验七中,遇到了使用流类库进行文件读取时的问题。详细情况是,使用老师提供的文件无法正常读取,但将文件内容复制到新的文件后可以顺利读取。这个问题可能涉及到文件路径、权限或文件格式的差异。

 

11-7

#include<iostream>
using namespace std;
int main(){
	ios_base::fmtflags original_flags=cout.flags();//保存cout参数设置 
	cout<<812<<'|';
	cout.setf(ios_base::left,ios_base::adjustfield);//cout左对齐 
	cout.width(10);//cout输出宽度为10 
	cout<<813<<815<<'\n';
	cout.unsetf(ios_base::adjustfield);//取消对齐方式的设置 
	cout.precision(2);
	cout.setf(ios_base::uppercase|ios_base::scientific);//设置浮点数的显示参数 
	cout<<831.0;
	cout.flags(original_flags);//恢复cout原参数设置 
	return 0;
} 

 

 

11-3-4

#include <iostream>
#include <fstream>
int main(void)
{
 using namespace std;
 ofstream outFile;
 outFile.open("D:\\file.txt");
 outFile << "已成功写入文件!" << endl;
 outFile.close();
 return 0;
}

 

 

 

#include<iostream>  
#include<fstream>  
#include<string.h>  
  
using namespace std;  
  
bool isnum_str(char str)  //判断是否是字符或数字  
{  
  if((str >= 'A' && str <= 'z') || (str >= '0' && str <= '9') )  
      return true;  
  else  
      return false;  
}  
  
void count(fstream &outfile, int *m )  //统计函数  
{ char str[256];  
  while(outfile.getline(str,256))  
  {   
    int tmp = 0;  
      
    for(int i = 0; i < strlen(str); i++)  
    {  
      if(str[i] == ' ' || str[i] == '.' || str[i] == ',' || str[i] == '?' || str[i] == '!')  
          m[1]++;            //统计单词数  
        
      if(isnum_str(str[i]))  
      { m[0]++;   tmp++;}    //统计字符数,tmp局部变量用来区分是不是一个空行。  
    }  
      
    if(tmp != 0)  
    m[2]++;                 //统计行数  
    tmp = 0;  
  }  
      
 return ;  
}  
  
int main()  
{  
    char filename[256];  
    int m[3] = {0};  
      
      
    cout<<"please input your filename:"<<endl; //输入要统计的文本的路径  
    cin.getline(filename,256);  
      
    fstream outfile(filename,ios::in);  
    count(outfile,m);  
   
    cout<<"characters: "<<m[0]<<endl;  
    cout<<"words:"<<m[1]<<endl;  
    cout<<"lines:"<<m[2]<<endl;  
    outfile.close();  
    system("pause");  
  return 0;      
  
system("pause");  
return 0;  
  
}  

 


 

 

 

#include<iostream>
#include<cstring>
#include<fstream>
#include<cstdlib>
#include<ctime> 
using namespace std;
struct student
{
    string num;
    string id,name,cls;
}stu[1000];
int main()
{
    ifstream fin("file.txt");
    ofstream fout("roll.txt");
    int i;
    while(fin>>stu[i].num>>stu[i].id>>stu[i].name>>stu[i].cls)
    {
        i++;    
    }
    fin.close();        
    int line=i;
    int a;
    srand(time(NULL));
    for(int i=0;i<5;i++)
    {
        a=rand()%(line-10+3)+10;
        cout<<stu[a].num<<" "<<stu[a].id<<" "<<stu[a].name<<" "<<stu[a].cls<<endl;
        fout<<stu[a].num<<" "<<stu[a].id<<" "<<stu[a].name<<" "<<stu[a].cls<<endl;
    }
    fout.close();
    return 0;
}

 

这道题我是参考同学的代码,不知为什么老师给的文件读取不了,而我把文件内容复制到自己另外的一个文件中就可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值