Buscar una fila específica C ++ TAB delimitada
-
12-12-2019 - |
Pregunta
Cantidad de tipo de número de cuentas
15 Comprobando 52.42
23 ahorros 51.51
11 Comprobación 12.21
es mi pestaña archivo delmitado
Me gustaría poder buscar filas por el número de cuenta.Di que si pongo en 23, quiero obtener esa fila específica.¿Cómo le gustaría hacer eso?
Además, si quería cambiar un valor específico, digamos la cantidad 51.51 en la cuenta 23. ¿Cómo puedo obtener ese valor y reemplazarlo con un nuevo valor?
hasta ahora solo estoy leyendo en fila por fila
línea de cadena; iftstream es ("cuenta.txt");
if (is.is_open()) { while (std::getline(is, line)) // read one line at a time { string value; string parseline; std::istringstream iss(line); getline(line, parseline); cout << parseline << endl; // do something with the value while (iss >> value) // read one value at at time from the line { //cout << line << " "; // do something with the value } } is.close(); } else cout << "File cant be opened" << endl; return 0;
Solución
Dado que cada línea es de longitud variable, no hay forma de indexar a una fila en particular sin primero analizar el archivo completo.
Pero sospecho que su programa querrá manipular filas y columnas aleatorias.Así que empezaría al analizar todo el archivo.Ponga cada fila en su propia estructura de datos en una matriz, luego ÍNDICE esa fila en la matriz.
Puede usar "STRTOK" para dividir la entrada en filas, y luego Strtok nuevamente para dividir cada fila en los campos.
Otros consejos
Si tuviera que hacer esto, primero escribiría algunas funciones que analizan todo el archivo y almacenaría los datos en una estructura de datos apropiada (como una matriz o STD :: MAP).Luego, usaría la estructura de datos para las operaciones requeridas (como la búsqueda o la edición).Finalmente, volvería a escribir la estructura de datos a un archivo si hay alguna modificación.