⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getline.cpp

📁 实现从一个.txt文件中读取文章
💻 CPP
字号:
#include<iostream.h>
#include<fstream.h>
#include<malloc.h>
char n;
char * tem;

int flag=0;
int k=0;
void getaline(ifstream &ins,int pw,int lm,char * buffer)
{ for(int m=0;m<pw;m++) buffer[m]='\0';
  int length=0;
  int i=0;
  if(n=='@')                       //分段
  {  for(;i<8;i++)
     buffer[i]='\0';
     buffer[i+1]='@';
  }
 
   for(;i<lm;i++)                 //左空白
	  buffer[i]='\0';
  
  
   if(flag)                      //如果完整的字被分在两行,则将被分割的字挪到下一排输出
   { 
	   for(int p=0;p<k;p++)
   { buffer[i]=tem[k-1];i++;k--;}
     k=0;
	 flag=0;
   }
   
   if(n==' ')                    //如果下一行开头为空格,则忽略空格
   {  while(n==' ')
	   { n=(char)ins.get();
	   }
       buffer[i++]=n;
   }
   else buffer[i++]=n;
   for(;i<pw;i++)
   {
     char a=(char)ins.get();
	 if(a=='/n')
      ins.get();
     if(a=='@')                    //若遇到分段标记则停止本行输出
	 { n=a;
	 cout<<"haoa ni";
       goto end;
	 }
      if(a==' ')                  //字与字之间只留一个空格符
	  {  buffer[i++]='\0';
       while(a==' ')
	   { 
		   a=(char)ins.get();
	   }
	  if(a=='/n')                //忽略换行符
		  a=(char)ins.get();
	 }
	   buffer[i]=a;
       if(ins.eof())
		   return ;  
   }
    n=(char)ins.get();
    if( n!=' ' && buffer[pw-1]!=' ' )
	{  while(buffer[i-1]!='\0')
	{  tem[k]= buffer[i-1];
	   buffer[i-1]='\0';
	   i--;k++;
	   flag=1;
	}
	}
end : return;
	  
}
void main()
{  char * buffer;
   buffer=(char*)malloc(10*sizeof(char));tem=(char*)malloc(10*sizeof(char));
   ifstream myinf("aaa.txt");ofstream out("abcd.txt");
   if(myinf.fail())
   { cerr<<"文件打开出错!";
     return;
   }
   
   n=(char)myinf.get();
   getaline(myinf,500,3,buffer);
   for(int i=0;i<500;i++)
   {
	 cout<<buffer[i];
     out<<buffer[i];
   }
  

}


	
	
	    

  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -