Es un tema duplicado, ya le están ayudando en su otro tema: Problemas con los ficheros
En cuanto a fstream es parte de la biblioteca estándar de C++.
Un saludo
En cuanto a fstream es parte de la biblioteca estándar de C++.
Un saludo
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Wire3 en 17 Diciembre 2013, 23:08 PME estado leyendo mucho sobre el tema,e recopilado vastantes pdfs.manuales,libros y de mas.. Pero aun asi no estoy seguro de si esta bien empezar con C/C++ como primer lenguaje de programaciónSi bien C y C++ tienen similitudes son lenguajes distintos y lo primero que deberias hacer es decidirte por uno.
Cita de: jednak en 17 Diciembre 2013, 23:48 PMLeer libro de kernighan y ritchie(El leguaje de programacion C) OBLIGATORIO.Obviamente la lectura de K&R2 no es obligatoria, yo supongo el comentario va mas en la linea de ser uno de los libros mas recomendados para aprender C.Cita de: amchacon en 26 Diciembre 2013, 13:07 PM
Yo no lo he leído y no me considero un idiota en C, valga la modestia.
Cita de: amchacon en 26 Diciembre 2013, 13:07 PMAdemás esos libros suelen estar muy anticuados, ya han salido nuevos estandaresDepende de que libro. En el caso de "K&R2" y "Pointers on C" su calidad pedagógica se mantiene a pesar de la edad (no tengo conocimiento de uno sobre C11 a la misma altura) y nada impide aprender (bien) C90 y a continuación actualizarse a C11.
Cita de: jednak en 17 Diciembre 2013, 23:48 PMLeer libro de kernighan y ritchie(El leguaje de programacion C) OBLIGATORIO.Lo es. K&R2 es un libro para aprender C desde cero empezando con un mini-tutorial seguido de capítulos enfocados en operadores, funciones, punteros, etc. El "problema" con el se debe a que las explicaciones son precisas pero cortas y esa falta de detalle a algunos les causa dificultades.Cita de: dato000 en 18 Diciembre 2013, 00:22 AM
Aunque es una referencia obligatorio, es un libro muy avanzado, no es material introductorio
Cita de: DanielC# en 26 Diciembre 2013, 16:16 PMUna pregunta más, tu ultimo código se puede aplicar de esta manera.Primero tienes que explicar de una forma clara a que te refieres con "aplicar de esta manera", si te refieres a la comillas estas deben ser "comillas planas sin chiste".
char *frase[] = {"aveja", "Aveja"};
Cita de: terrateck en 25 Diciembre 2013, 21:36 PMSin embargo al imprimir al final las dos últimas fechas, los valores que se obtienen son exactamente iguales. No entiendo por qué al ejecutar tinfo2=localtime(&t2) la estructura t1 también se ve alteradaEs un error lógico. El problema no son las variables t1 y t2 sino tinfo1 y tinfo2.
CitarlocaltimeElla retorna la dirección de un objeto interno con clase de almacenamiento estático, esto es, se crea justo antes de llamarse a la función main y se destruye al finalizar el programa, por eso la dirección que retorna en cada llamada es la misma. Puedes comprobarlo imprimiendo la dirección de esos dos punteros justo antes de terminar tu programa.
struct tm *localtime(const time_t *tod);
The function stores in the static-duration time structure an encoding of the calendar time in *tod, expressed as local time. It returns the address of that structure.
#include <stdio.h>
#include <time.h>
#include <windows.h>
#define TFECHA 30
int main(void)
{
time_t t1, t2;
struct tm tinfo1, tinfo2;
char f1[TFECHA],f2[TFECHA];
time(&t1);
tinfo1 = *localtime(&t1);
strftime(f1, TFECHA, "%d/%m/%Y %H:%M:%S", &tinfo1);
printf("%s\n", f1);
Sleep(5000);
time(&t2);
tinfo2 = *localtime(&t2);
strftime(f1, TFECHA, "%d/%m/%Y %H:%M:%S", &tinfo1);
strftime(f2, TFECHA, "%d/%m/%Y %H:%M:%S", &tinfo2);
printf("%s\n%s\n", f1,f2);
return 0;
}
Cita de: DanielC# en 24 Diciembre 2013, 00:19 AMPor fin puedo demostrar con este programita lo que pretendía hacer, sólo que todavía no pude hacerlo con array de puntero a charSin animo de ofender pero en este tema desde mi primera respuesta tienes un ejemplo sobre como intercambiar el valor de dos punteros (por supuesto elementos de un array):
#include <stdio.h>
#include <string.h>
int main(void)
{
char *frase[] = {
"abeja",
"Abeja"
};
int i;
if(strcmp(*frase, *(frase + 1)) > 0){
char *temp = frase[0];
frase[0] = frase[1];
frase[1] = temp;
}
for (i = 0; i < 2; i++)
printf(" %s", frase[i]);
putchar('\n');
return 0;
}
#include <stdio.h>
#include <string.h>
int main(void)
{
char *p = "abeja";
char *q = "Abeja";
if(strcmp(p, q) > 0){
char *temp = p;
p = q;
q = temp;
}
printf("%s %s\n", p, q); /* Abeja abeja */
return 0;
}
Cita de: m@o_614 en 25 Diciembre 2013, 08:54 AMtengo la duda de si fgetc puede aceptar argumentos de otros tipos como char*?No.
Cita de: m@o_614 en 22 Diciembre 2013, 16:18 PMuna última duda, como en el codigo primero le pido el valor de car y despues le hago un "cast" con sprintf para que sea una cadena, no seria mejor si simplemente quitar el sscanf y el sprintf, me quedo con el fgets y despues se lo concateno a con strcatYa que el programa solo colecta caracteres para formar una cadena basta con scanf:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
char *p;
p = malloc(6);
for (i = 0; i < 5 && scanf(" %c", p + i) == 1; i++)
;
p[i] = '\0';
printf("%s\n", p);
return EXIT_SUCCESS;
}
Cita de: elProfeta1979 en 21 Diciembre 2013, 18:36 PMmi pregunta es: ¿sí es una función donde siempre se le pasan cadenas de caracteres para que poner punteros genéricosPorque la función sera llamada por qsort, su prototipo es:
qsort(void *elem, size_t num_elem, size_t elem_size, int (*cmp)(void const *pa, void const *pb))
Cita de: m@o_614 en 21 Diciembre 2013, 20:27 PMvi que mi error era en que no le habia asignado memoria a la cadena, pero ahora por ejemplo si le ingreso las letras a, b, c, d, e. cuando le pido que imprima ya la cadena completa me imprime con basura #Wqabcde1) Cuando reservas un bloque de memoria con malloc su contenido es no definido o basura.