#include <stdio.h>
main() {
printf("¿Número de carácteres?\n");
int num;
scanf("%i\n",&num);
char vector[num];
int c;
FILE *comprob;
comprob = fopen("archivo.txt","rb");
if (comprob==NULL) {
printf("No existe el archivo\n"); }
else {
int i;
for (i=0; i<num; i++) {
c = fgetc(comprob);
vector[i]=c;}
vector[i] = '\0';
fclose(comprob);
int a;
for (a=0; a<num; a++) {
printf("%c",vector[a]);} }
exit 0;}
No da errores al compilar pero no muestra lo que contiene el archivo ¿ Por que ?
Intentadlo así,
#include <stdio.h>
int main(){
int num;
char vector[num];
int c;
FILE *comprob;
printf("Número de carácteres?\n");
scanf("%i",&num);
comprob = fopen("C:\PoC.txt", "rb");
if (comprob==NULL){
printf("No existe el archivo\n");
}else{
int i;
for (i=0; i<num; i++) {
c = fgetc(comprob);
vector[i] = c;
}
vector[i] = '\0';
fclose(comprob);
for (i=0; i<num; i++){
printf("%c\n", vector[i]);
}
}
system("PAUSE");
return 0;
}
Resultado,
N·mero de carßcteres?
28
Hola como estas - SHELL ROOT
me da fallo de segmentacion :O
No se, estoy usando Dev-C++, entonces en la siguiente linea de tú código,
#include <stdio.h>
main() {
printf("¿Número de carácteres?\n");
int num;
scanf("%i\n",&num);
char vector[num];
int c;
FILE *comprob;
comprob = fopen("archivo.txt","rb");
if (comprob==NULL) {
printf("No existe el archivo\n"); }
else {
int i;
for (i=0; i<num; i++) {
c = fgetc(comprob);
vector[i]=c;}
vector[i] = '\0';
fclose(comprob);
int a;
for (a=0; a<num; a++) {
printf("%c",vector[a]);} }
exit 0;}
Quitale el \n al scanf así,
scanf("%i", &num);
#include <stdio.h>
int main(int argc, char *argv [])
{
if (argc != 3)
{
printf ("Use: %s <file> <chars>\n\n", argv [0]);
return 1;
}
int i, c;
char frase [atoi (argv [2])];
FILE *fp = fopen(argv [1],"r");
if (fp == NULL)
{
printf("No existe el archivo\n");
return 1;
}
for (i = 1; i <= atoi (argv [2]); i++)
{
c = fgetc(fp);
frase[i] = c;
}
fclose (fp);
for (i = 1; i <= atoi(argv [2]); i++)
printf("%c", frase[i]);
return 0;
}
Vaya, algunos fallos habia...
tmb ay aqui de omision en este, pero el tiempo...
fff sora se te da mejor la seguridad, de lo poco que se de ti...
PD: No tiene nada que ver. %i es igual que %d en Dev, pero es siempre mejor %d
Como tu decias shell root me fallaba el \n en el scanf graciass.
Si jaaja puede que se mediera algo mejor la seguridad pero aun asi me gusta programar xDD
ademas en temas de seguridad no consigo avanzar :( bueno dejo el code resuelto porsi a alguien le sirve:
#include <stdio.h>
main() {
printf("¿Número de carácteres?\n");
int num;
scanf("%i",&num);
char vector[num];
int c;
FILE *comprob;
comprob = fopen("archivo.txt","rb");
if (comprob==NULL) {
printf("No existe el archivo\n"); }
else {
int i;
for (i=0; i<num; i++) {
c = fgetc(comprob);
vector[i]=c;}
vector[i] = '\0';
fclose(comprob);
int a;
for (a=0; a<num; a++) {
printf("%c",vector[a]);} }
return 0;}
De nada por nada. El mio tmb estaba bien.
Por que el de Sora estaba mal? Quiero decir, eso a mi nunca me ha problematizado
@Sagrini, no entiendo para qué mandarle un salto de linea cuando estas extrayendo un valor...
Esto es exactamente lo que pregunto, xD!