Se le proporciona un archivo de texto que contiene cualquier tipo de caracteres. Tienes que encontrar la suma de los valores enteros.
Ejemplos:
Input : text.txt Let contents of test.txt be : :-,,$%^5313&^*1)(*( 464sz29>>///11!!! (*HB%$#)(*0900 Output : 6727 Input : text1.txt Let contents of test.txt be : 234***3r3r() ()(0)34 Output : 274
Pasos:
1. Para abrir el archivo solo en modo de lectura, podemos usar la biblioteca ifstream
2. Iterar a través de todas las filas del archivo y encontrar todos los números enteros
3. Si se encuentra un número entero, guárdelo en la variable temporal porque existe la posibilidad de que el siguiente carácter pueda sea un número entero
4. Agregue el valor temporal en el resultado final si se encuentra algún carácter excepto los números enteros y establezca la temperatura = 0 nuevamente
5. Si el último elemento es un número entero, entonces tenemos que agregar la temperatura después del ciclo si no lo es, entonces el valor de la temperatura será ya ser cero. Entonces la suma no se verá afectada.
// C++ implementation of given text file which // contains any type of characters. We have to // find the sum of integer value. #include <bits/stdc++.h> using namespace std; // a function which return sum of all integers // find in input text file int findSumOfIntegers() { ifstream f; // to open the text file in read mode f.open("text.txt"); int sum = 0, num = 0; // One by one read strings from file. Note that // f >> text works same as cin >> text. string text; while (f >> text) { // Move in row and find all integers for (int i = 0; text[i] != '\0'; i++) { // Find value of current integer if (isdigit(text[i])) num = 10 * num + (text[i] - '0'); // If other character, add it to the // result else { sum += num; num = 0; // and now replace // previous number with 0 } } } sum += num; return sum; } // Driver program to test above functions int main() { cout << findSumOfIntegers(); return 0; }
Producción:
6727 (for Input 1)
Este artículo es una contribución de Harshit Agrawal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA