字符串反向输出以及缓冲区分析
2007-05-14 22:28
295 查看
用一般方法实现:
#include<iostream>
#include <string>
using namespace std;
string reverseString(string s);
void main()
{
string str;
cout<<"Enter a string:"<<endl;
cin>>str;
cout<<str<<"的反向字符串是";
cout<<reverseString(str)<<endl; //此处如果化为一行写的话那么将产生输出错误,因为输出缓冲区
} //还未清空,输出会连在一起!!!
string reverseString(string s)
{
if(s.length()==1)
return s;
else
{
char c=s[s.length()-1];
cout<<c;
return reverseString(s.substr(0,s.length()-1));
}
}
用STL实现:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
void main()
{
string str;
string str2;
cout<<"Enter a string:"<<endl;
cin>>str;
copy(str.rbegin(), str.rend(),
back_insert_iterator<string>(str2)); //还是STL方便有快捷啊!!!
cout<<str2;
}
http://blog.chinaunix.net/u/18517/showart.php?id=236681关于缓冲区应用的帖子
cout << flush是把内容从缓冲区刷新,也就是说把内容打印道屏幕上,
在这里可能看的不是很明了。
在文件操作中就比较明显了。
#include "stdafx.h"
#include <fstream>
#using namespace::std;
main(int argv, char *argc[])
{
ostring file("test.txt")
file << "aaa" << endl;
file << "bbb" << endl;
// file.flush();如果不调用这句,上面的内容不能保存道文件内,因为这时aaa,bbb的内容在
// 缓冲区,并没有在文件内部。cout << flush的原理和这个是一样的。
abort();// 非正常推出,
}
cout<<flush 清输出缓冲
cout<<endl 也清
cin.sync() 清输入缓冲
#include<iostream>
#include <string>
using namespace std;
string reverseString(string s);
void main()
{
string str;
cout<<"Enter a string:"<<endl;
cin>>str;
cout<<str<<"的反向字符串是";
cout<<reverseString(str)<<endl; //此处如果化为一行写的话那么将产生输出错误,因为输出缓冲区
} //还未清空,输出会连在一起!!!
string reverseString(string s)
{
if(s.length()==1)
return s;
else
{
char c=s[s.length()-1];
cout<<c;
return reverseString(s.substr(0,s.length()-1));
}
}
用STL实现:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
void main()
{
string str;
string str2;
cout<<"Enter a string:"<<endl;
cin>>str;
copy(str.rbegin(), str.rend(),
back_insert_iterator<string>(str2)); //还是STL方便有快捷啊!!!
cout<<str2;
}
http://blog.chinaunix.net/u/18517/showart.php?id=236681关于缓冲区应用的帖子
cout << flush是把内容从缓冲区刷新,也就是说把内容打印道屏幕上,
在这里可能看的不是很明了。
在文件操作中就比较明显了。
#include "stdafx.h"
#include <fstream>
#using namespace::std;
main(int argv, char *argc[])
{
ostring file("test.txt")
file << "aaa" << endl;
file << "bbb" << endl;
// file.flush();如果不调用这句,上面的内容不能保存道文件内,因为这时aaa,bbb的内容在
// 缓冲区,并没有在文件内部。cout << flush的原理和这个是一样的。
abort();// 非正常推出,
}
cout<<flush 清输出缓冲
cout<<endl 也清
cin.sync() 清输入缓冲
相关文章推荐
- C/C++:递归使用:使用递归反向写文件(例子)以及字符串翻转输出
- 字符串反向输出
- java 实现接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写
- 将用户输入的字符串反向输出到页面上,并且要求将其中的小写字母转换成大写字母。
- 字符串按词反向输出
- 反向输出字符串
- 变成基本功——递归反向输出字符串
- ACM273 给你一个乱序的字符串,里面包含有小写字母(a--z)以及一些特殊符号,请你找出所给字符串里面所有的小写字母的个数, 拿这个数对26取余,输出取余后的数字在子母表中对应的小写字母(0对应z
- 递归反向输出字符串
- 对于输出的字符串进行反向输出(不包括汉字)
- java中如何反向输出字符串
- leetcode-Reverse Words in a String 反向输出字符串
- java编写输出一个字符串中大写英文字母数、小写英文字母数以及非英文字母数
- windows下eclipse工程转到linux下源代码注释以及输出字符串中中文乱码解决方法
- 将输入文件读入字符串以及将字符串写入输出文件
- String 反向输出字符串
- 用递归函数实现字符串反向输出
- 使用递归反向输出一个字符串
- 用递归的思想写编写一个函数reverse_string(char * string)实现字符串反向输出和反向排列
- 递归法实现反向输出字符串