字符串读取

有两种方法可以读C++字符串:使用提取操作符(>>)和getline函数。
(1)字符串提取操作符:
首先,它跳过前导空白字符,然后提取所有邻近的非空白字符。当发现空白字符时,
它就停下来。终止空白字符被留在输入流中.
提取操作符可以用来从键盘(cin流)或者使用开放式文件流从文件读数据。例如,要把一个值读入字符串
对象str1,你只需要编写下面的语句之一。
cin>>str1; or fsIn>>str1;

(2)getline 函数
cin.getline(字符指针(char*),字符个数N(int),结束符(char));
cin的getline需要这样用: cin.getline(s,50,‘\n‘);
其中s需要时char *或unsigned char *,50表示读入大小(最大),‘\n‘表示分隔符,可以省略,默认就是这个,如果是‘ ‘,则表示空格作为截止符

getline(cin,s,‘\n‘),s需要是string,需要引入string头文件,std::string空间引入,‘\n‘可省略,如果是‘ ‘,则表示空格作为截止符

cin.getline适合你知道读入大小,固定char数组,速度快

getline(cin,s)不需要指定大小,但速度慢、生成的文件大,适合偷懒用

//读取一个姓名字符串,其中名和姓由逗号分开,然后打印这个姓名。
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;

void main()
{
  cout<<"Enter a name in the form<last,first>:\n";
  char lastName[20];
  cin.getline(lastName,20,‘,‘);

  char firstName[20];
  cin.getline(firstName,20,‘\n‘);

  cout<<"Here is your name:\n"<<firstName<<‘ ‘<<lastName<<"\n";

}

  

#include<iostream>
#include<sstream>
using namespace std;

void main(void)
{
/*	char s[100];
	cin.getline(s,100,‘\n‘);//cin.getline(s,100);//也可以,默认都是‘\n‘*/

	string s;
	cin.clear();
	getline(cin,s);
	cin.clear ();

	cout<<s<<endl;

	string tempStr;
	istringstream in(s);//===================?????????????????????//
/*	istringstream in;
	in.str(s);
*/

	while(in>>tempStr)
		cout<<tempStr<<" length is "<<tempStr.size()<<endl;
	in.clear();

}

  

字符串读取

时间: 2024-10-10 21:37:01

字符串读取的相关文章

[转]C# JSON格式的字符串读取到类中

将JSON格式的字符串读取到类中 本例中建立JSON格式的字符串json,将其内容读取到Person类中 运行本代码需要添加引用动态库Newtonsoft.Json 程序代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //需要引用 Newtonsoft.Json.dll using Newtonsoft.J

unity3d根据字符串读取属性.

unity3d的对象有field, property. 一般要取得类的某个属性时,要使用GetType().GetField(xxx); 许多教程都写用property.(坑) property 感觉是运行时的属性.(not sure!) ex:有个类xxx public class xxx{ public int aaa = 5; public string bbb = "test"; } 那么要取得xxx的aaa属性,则应该先从xxx里读取叫aaa的fieldinfo. 再从fie

C语言:字符串读取流读取文件中的数据

#include<stdio.h> int main() { //定义文件指针 FILE *f = NULL; //打开文件 f = fopen("1.txt","r"); if(f==NULL) { printf("文件读取失败!\n"); return -1; } //读文件 const int SIZE = 100; char buf[SIZE];//用字符数组做读文件的缓冲区 while(!feof(f)) { //字符串方式

iOS开发之oc(十七)--Foundation(2)NSString及简单的字符串读取和写入

NSString : 不可变字符串 NSMutableString : 可变字符串 // 重点注意:URL不能读取文件名为中文的文件,否则为null,读不出来,要换为英文 // URL读取文件才是万能 下面是一些功能的代码 1.创建和读取 void stringCreate() { /* 1.字符串的创建的方法 */ NSString *s1 = @"jack"; //NSString *s2 = [[NSString alloc] initWithString:@"jack

题目1029:魔咒词典(map使用以及字符串读取函数总结)

题目链接:http://ac.jobdu.com/problem.php?pid=1029 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus // // 1029 魔咒词典.cpp // Jobdu // // Created by PengFei_Zheng on 30/04/2017. // Copyright © 2017 PengFei_Zheng. All rights reserved. // #include <stdio.h> #

ASP.NET5实践02:EF7迁移-连接字符串读取-增删改查-关系映射

1.概述 本章重点本应该先从实体关系映射介绍,就像做网页设计先从整体布局开始一样. 最好先基本搞明白实体关系映射到数据表关联关系之后,再研究实体属性或表字段细节. EF7.x和EF6.x区别是很大的.EF7为了迎合NoSql,与以前单一处理关系型数据库映射有一些不同的理念. 在讲这之前,我们先学习EF7迁移和数据库字符串配置读写. 这算准备工作,虽然有些啰嗦,但这是写这篇博客的思路.既然是实践系列,就边体验便写博客! 2.手动迁移 实体类: public class Role { public

字符串读取方法

注意  char c[2342342] 等读取时 若要读进空格用gets():输入qweqwe qwewqe用cin只能出qweqwe string c不可用gets()读取,无空格时可用cin,否则可直接读取一行getline(cin, c, '\n'); //第三个参数默认是'\n',如果要以其它字符为临界点,换了就行了.

io、os(从终端、文件、字符串读取的小例子)

package main import ( "io" "strings" "fmt" "os" ) func ReadFrom(reader io.Reader, num int) ([]byte, error) { p := make([]byte, num) n,err := reader.Read(p) if n > 0 { return p[:n], nil } return p, err } //从字符串读 f

Crypto++ RSA从字符串读取公私匙

string and StringSource (load): string spki = ...; StringSource ss(spki, true /*pumpAll*/); RSA::PublicKey publicKey; publicKey.Load(ss); vector and ArraySource (load): vector<byte> spki = ...; ArraySource as(&spki[0], spki.length(), true /*pump