细说C++(十):字符串处理技巧--输入/输出方法格式

10 篇文章 0 订阅

字符(串)多种输入函数方法

 

(string对象的读入,自动忽略开头空白(换行,空格,制表)符,从严格意义上的第一个真正字符开始读入)

首当其冲就是C/C++的基本输入方法

  printf()&&scanf()   C语言输入输出函数

单字符的占位符为“%c”;读取单字符

字符串的占位符为“%s”;读取一个中间没有空格且没有换行的字符串

  cout&&cin      C++输入输出缓冲流

     //  字符串的输入以空格结束

 

1;getline()包含两个参数

getline(流参数,输入string对象)

头文件:#include <string>

istream& getline ( istream &is , string &str , char delim );  (原型)

  用法(1).  getline(cin,str);

         (2).  cin,getline(str,length)   指定输入length个字符,包含末尾一个‘\0’

 

2; gets()/puts()

读取整行字符,包括空格,遇回车结束,但换行符会被丢弃,然后在末尾添加'\0'字符

puts输出与gets对应,可输出空格
调用格式:gets(s); s为字符串变量(字符串数组名或字符串指针)

 

puts输出字符串时要遇到'\0’也就是字符结束符才停止,并换行

(注意;1. puts只能输出字符,不能是数值或者进行格式转化

             2. 如果输入顺利,它返回的是读入字符串的地址;如果出错或gets()遇到文件结尾,它就返回一个空(或0)地址)

 

3; getchar()/putchar()

getchar()返回读入字符的ASCII码,可以对其处理输出对应字符

可以printf,占位符%c 输出字符

 

使用方法示例代码

#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
using namespace std;

const int maxn=1000+10;
int main(){
//   freopen("C:\\Users\\24398\\Desktop\\in-project.txt","r",stdin);

//    string str;    //error getsd的对象必须是char* 
    char str1[maxn]; 
    gets(str1);      
    cout<<str1<<endl;
    puts(str1);
//	puts(1);   //error
    
	char str2[maxn];
//    string str2;      //error  !!!
    cin.getline(str2,5);
    
    
    string str3;
    getline(cin,str3); 
    
    
    
    
    //读入未知数量对象
    string str;
    //1.cin
	while(cin>>str){
		cout<<str;
	} 
	
	//2.getline
	while(getline(cin,str)){
		cout<<str;    //多种判断方法
		if(str.size()>maxn)  cout<<str;
		if(str.empty()>maxn) cout<<str; 
	}
	
	//3.gets
	while(gets(str)){
		cout<<str;
	}
	
	//4.getchar
	int c;
	while((c==getchar())!=EOF){
		cout<<c;     //多种方法 
		printf("%c",c);
		putchar(c); 
	}
	
	return 0;
} 

 

4;文件格式的输入

 fget()/fput()

 

fgetc()/fputc()

打开一个文件(参数),读入单个字符,返回一个int值

文件输入结束,则返回一个特定标记EOF

 

fgets()/fputs()

原型  char *  fgets(char * s, int n,FILE *stream);

    参数:

         s: 字符型指针,指向存储读入数据的缓冲区的地址。

         n: 从流中读入n-1个字符

         stream : 指向读取的流。

   返回值:

          1. 当n<=0 时返回NULL,即空指针。

          2. 当n=1 时,返回空串"".

          3. 如果读入成功,则返回缓冲区的地址。

          4. 如果读入错误或遇到文件结尾(EOF),则返回NULL.

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值