比较C++的string类型与C-串的输入输出

来源:互联网 发布:农村淘宝店怎么开 编辑:程序博客网 时间:2024/05/21 22:27

//*************************
//比较C++的string类型与C-串的输入输出
//**************************
#include<iostream>
#include<sstream>
#include<fstream>
using namespace std;
//**********************
//通过从文件或键盘读入字符序列比较C++的string与C-串的输入输出
void main()
{
//1.1通过循环读入单词(或字符串,以一个或多个空格隔开)后,每个单词后加上一个空格输出,
//若从键盘输入则没法终止循环,只有手动退出程序。

/* for(string s; cin>>s; )
  cout<<s<<" ";   
 cout<<endl;
*/

//如直接运行后输入:
//Hello,空格fuck?空格空格空格空格you空格空格空格?
//将得到Hello,空格fuck?空格you空格?
//同时还可以继续输入。。。

//1.2若字符序列从文件流中输入则直到所有字符被全部输入,即没有数据接续,留状态变成false,循环终止。

/* ifstream in("abc.txt");
 for(string s; in>>s; )
  cout<<s<<" ";   
 cout<<endl;
 int a; cin>>a;//让程序暂时不退出,便于观察结果
*/
//例如文本abc.txt中保存:
/*
a空格空格b空格c;空格回车
空格a空格空格空格b空格空格c;%
将得到结果:
a空格b空格c;空格a空格b空格c;%
*/

//1.3使用字符数组,结果同上,
/* for(char a[1000]; cin>>a;)
  cout<<a<<" ";
 cout<<endl;
*/
//文件输入结果同上 
/* ifstream in("abc.txt");
 for(char a[1000]; in>>a;)
  cout<<a<<" ";
 cout<<endl;
 int a; cin>>a;
*/


//2.1通过getlin将字符序列一次性输入,若键盘输入一串字符序列后回车,可以得到相同序列。 
/* string s;
 getline(cin,s);
 cout<<s<<endl;
 system("pause");
*/
//2.2文件流输入则只能输入第一行,因为getline遇到回车后将终止
/* ifstream in("abc.txt");
 string s;
 getline(in,s);
 cout<<s<<endl;
 system("pause");
*/
/*得到结果:
a空格空格b空格c;空格
*/

//2.3照下面代码可一直从键盘输入,程序不终止
/* string s;
 for (  ; getline(cin,s);   )
  cout<<s<<endl;
*/ 

//2.4 加上循环后文件流输入能全部原样输出 
/*  ifstream in("abc.txt");
 string s;
 for (  ; getline(in,s);   )
  cout<<s<<endl;
 system("pause");
*/
//2.5 这是使用字符数组用getline一次性输入的方法
/* char a[1000];
 cin.getline(a, 1000);
 cout<<a<<endl;
 system("pause");
*/
//2.6 文件流输入 ,结果同样只能得到第一排
/* ifstream in("abc.txt");
 char a[1000];
 in.getline(a, 1000);
 cout<<a<<endl;
 system("pause");
*/
//2.7 加个循环实现全部输入
/* ifstream in("abc.txt");
 char a[1000];
 for( ; in.getline(a, 1000); )
  cout<<a<<endl;
 system("pause");
*/


//3.1 逐个字符输入的方法,虽然结果同2.1,2.5,但实现过程是不一样的
/* for(char ch; (ch=cin.get())!='/n';)
  cout<<char(ch);
 cout<<endl;
 system("pause");
*/
//3.2 文件流也能实现逐个字符全部输出,但需要在文件末尾加上一个特定字符已作终止标记
/*
 ifstream in("abc.txt");
 for(char ch; (ch=in.get())!='%'; )//abc.txt中末尾添加%以便用来终止循环
  cout<<char(ch);
 cout<<endl;
 system("pause");
*/
//************************************************************
}

原创粉丝点击