Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Sumar Numeros de un fichero

Estas en el tema de Sumar Numeros de un fichero en el foro de C/C++ en Foros del Web. bueno amigos, encontre un ejercicio que me parecio muy interesante para realizarlo,vengo de programar en java y me es confuso ciertas cosas de c++ en ...
  #1 (permalink)  
Antiguo 21/12/2013, 11:50
 
Fecha de Ingreso: junio-2012
Mensajes: 32
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Sumar Numeros de un fichero

bueno amigos, encontre un ejercicio que me parecio muy interesante para realizarlo,vengo de programar en java y me es confuso ciertas cosas de c++ en las converciones ,de string a int ,char a int o a string ,bueno se podria decir que en las conversiones.

Les comento que no es ninguna tarea o algo parecido solo es un ejercicio que me parece interesante hacerlo

El ejercicio es este


programa capaz de calcular la suma de los números que se indicarán en la entrada estándar, separados por espacios, y mostrar los resultados en pantalla. Los números pueden ser negativos, grandes y las líneas pueden contener espacios adicionales, por lo que el programa debe ser robusto.

Ejemplo de entrada
123456789012 1
2 3
4 5 -1

Ejemplo de salida
123456789013
5
8




haora este es el codigo que tengo, podran ver que tengo 2 lineas como comentario si los quito no me hace la suma eso es lo que tengo duda el porque




#include <iostream>
#include <fstream>
#include <cstring>
#include <stdlib.h>

using namespace std;

void separando(char*);


void separando(char *cadena){

char *contenedor;
string convertirString;
int suma=0;


contenedor=strtok(cadena," , ");
while(contenedor!=NULL){

convertirString+=string(contenedor);
// suma+=atoi(convertirString.c_str());


contenedor=strtok(NULL," , ");


}

//cout<<suma<<endl;
cout<<convertirString<<endl;


}




int main(){

ifstream archivo;
char cadena[80];


archivo.open("SumaDificil.txt",ios::in);

if(archivo.fail())
cout<<"Error al abrir el archivo"<<endl;

else{
while(!archivo.eof()){
archivo.getline(cadena,sizeof(cadena));

separando(cadena);


}



archivo.close();

}





cin.get();



return 0;
}



Cualquier opinión me ayuda mucho gracias amigos
  #2 (permalink)  
Antiguo 21/12/2013, 12:18
 
Fecha de Ingreso: diciembre-2013
Mensajes: 150
Antigüedad: 11 años
Puntos: 8
Respuesta: Sumar Numeros de un fichero

Deberías colocar tu codigo con resaltado de sintaxis para entenderlo mejor. Asi mas gente puede que te responda. Asi:

Código C:
Ver original
  1. int main(int argc, char argv[]);
__________________
¿Necesitas ayuda con algún algoritmo? Si tienes dudas, entonces visita: http://algoritmosypseudocodigo.blogspot.com/.
  #3 (permalink)  
Antiguo 21/12/2013, 12:25
 
Fecha de Ingreso: junio-2012
Mensajes: 32
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Sumar Numeros de un fichero

Muy cierto seria mas entendible,haber aqui esta

Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstring>
  4. #include <stdlib.h>
  5.  
  6. using namespace std;
  7.  
  8. void separando(char*);
  9.  
  10.  
  11. void separando(char *cadena){
  12.  
  13. char *contenedor;
  14. string convertirString;
  15. int suma=0;
  16.  
  17.  
  18. contenedor=strtok(cadena," , ");
  19. while(contenedor!=NULL){
  20.  
  21. convertirString+=string(contenedor);
  22. // suma+=atoi(convertirString.c_str());
  23.  
  24.  
  25. contenedor=strtok(NULL," , ");
  26.  
  27.  
  28. }
  29.  
  30. //cout<<suma<<endl;
  31. cout<<convertirString<<endl;
  32.  
  33.  
  34. }
  35.  
  36.  
  37.  
  38.  
  39. int main(){
  40.  
  41. ifstream archivo;
  42. char cadena[80];
  43.  
  44.  
  45. archivo.open("SumaDificil.txt",ios::in);
  46.  
  47. if(archivo.fail())
  48. cout<<"Error al abrir el archivo"<<endl;
  49.  
  50. else{
  51. while(!archivo.eof()){
  52. archivo.getline(cadena,sizeof(cadena));
  53.  
  54. separando(cadena);
  55.  
  56.  
  57. }
  58.  
  59.  
  60.  
  61. archivo.close();
  62.  
  63. }
  64.  
  65.  
  66.  
  67.  
  68.  
  69. cin.get();
  70.  
  71.  
  72.  
  73. return 0;
  74. }
  #4 (permalink)  
Antiguo 22/12/2013, 11:49
 
Fecha de Ingreso: junio-2012
Mensajes: 32
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Sumar Numeros de un fichero

Amigos lo logre resolver por si alguien le ayuda aqui esta

Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstring>
  4. #include <stdlib.h>
  5.  
  6. using namespace std;
  7.  
  8. void separando(char[]);
  9.  
  10.  
  11.                 void separando(char cadena[]){
  12.  
  13.                 char *contenedor;
  14.                 string convertirString;
  15.                 long long suma=0;
  16.  
  17.  
  18.                 contenedor=strtok(cadena," ");
  19.                 while(contenedor!=NULL){
  20.  
  21.                 convertirString=string(contenedor);
  22.                 suma+=atoll(convertirString.c_str());
  23.  
  24.  
  25.                 contenedor=strtok(NULL," ");
  26.  
  27.  
  28.                 }
  29.                 if(suma!=0)
  30.                 cout<<suma<<endl;
  31.  
  32.  
  33.                 }
  34.  
  35.  
  36.  
  37.  
  38.  
  39. int main(){
  40.  
  41.     ifstream archivo;
  42.     char cadena[80];
  43.  
  44.  
  45.                   archivo.open("SumaDificil.txt",ios::in);
  46.  
  47.                  if(archivo.fail())
  48.                  cout<<"Error al abrir el archivo"<<endl;
  49.  
  50.                  else{
  51.                  while(!archivo.eof()){
  52.  
  53.                        archivo.getline(cadena,sizeof(cadena),'\n');
  54.                        separando(cadena);
  55.  
  56.                  }
  57.  
  58.  
  59.  
  60.  
  61.  
  62.                   archivo.close();
  63.  
  64.                   }
  65.  
  66.  
  67.  
  68.  
  69.  
  70. cin.get();
  71.  
  72.  
  73.  
  74. return 0;
  75. }

Etiquetas: c++, sumas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:33.