C ++ ---- cadena devuelta en un formato de datos de conversión +

Esta serie de blog es mi revisión de los estudios de pregrado y reflexión para C ++ en el trabajo, el trabajo escolar antes sólo para encontrar que C ++ es realmente demasiado superficial.

Leer código de otras personas, no saben cómo volver a familiarizarse con el tema de aprendizaje

Código publicado primero

void split(const string& s, vector<double>& sv, const char flag = ' ') {
	sv.clear();
	istringstream iss(s);
	string temp;

	while (getline(iss, temp, flag)) {
		sv.push_back(stoi(temp));
	}
	return;
}

Esta cadena de código se puede dividir a un símbolo en particular, como "34613456-34" se eliminará y que los números presentados en la forma de una matriz de int.

en el mismo usado

1, el vector (el vector) es un contenedor secuencial dinámico encapsula el tamaño de la matriz (Secuencia Container). Necesita incluir <vector> incorporado

http://www.runoob.com/w3cnote/cpp-vector-container-analysis.html

2, Stoi () se convierte en una cadena de números int realización, int de deficiente o más allá de la gama del número de lanza una excepción, que está contenida en el std, otra función atoi (), pero no más allá del mismo efecto Int rango se produce una excepción, sino que vuelve límites superior e inferior, que está en la biblioteca estándar. prototipo de la función es la siguiente:

int stoi (const string&  str, size_t* idx = 0, int base = 10);

donde:

str: objeto String representa un número entero.
idx: un puntero que apunta a un objeto de tipo size_t, establezca su valor en el siguiente valor de posición de carácter str por la función. Este parámetro puede ser un puntero nulo, no se utiliza en este caso.
base de: determinar la base numérica para los caracteres válidos y su interpretación (base).
Si es 0, la base se usa es determinada por el formato de secuencia (para más detalles, ver strtol). Tenga en cuenta que, por defecto, este parámetro es 10, no 0.

Tales funciones comunes que comprende además:

(1) stol  Convierte una cadena larga int

(2) stoul  la conversión de la cadena a un entero sin signo de                  Stoll, stoull

(3) tela de  convertir la cadena de flotación

(. 4) STOD   convertir la cadena en doble                         STOLD

3, getline prototipo de la función:

getline(char *sink, streamsize size, char delimiter='\n')
getline( istream &is, string str, char delimiter );

Por lo que este método no puede leer una sola línea, también designada como se lee la bandera carácter, como en el código de ejemplo anterior está espacios '' utilizado

4, istringstream contenido en el <sstream> en (<sstream> comprende <iostream> lo que no contiene ambos)

1 istringstream istream deriva de la lectura de datos de una cadena de
2 ostringstream ostream escritura derivada de una cadena a
3 iostream stringstream derivado de la lectura o escritura en la cadena de la cadena de

Aquí es una cadena de caracteres que se utiliza como la corriente, y los operadores pueden aceptar los argumentos de salida incluye ningún tipo de datos incorporado const char *, así como Código:

string str="this is a test";  
    istringstream is(str);  
    string s;  
    while(is>>s)  
    {  
        cout<<s<<endl;  
    }  

La salida será:

esta

es

una

prueba

Sino también una conversión de tipo de datos se puede hacer usando este método:

int a, b, c;
	string s = "2 34 564";
	istringstream ss(s);
	ss >> a >> b >> c;
	cout << a << " " << b << " " << c << " ";

La salida es 234 564

Se han publicado 19 artículos originales · ganado elogios 2 · Vistas 5170

Supongo que te gusta

Origin blog.csdn.net/gunjiu4462/article/details/89287012
Recomendado
Clasificación