La funcion atoi no me funciona...
Hola, buenos dias.
He buscado en este foro sobre la función atoi, y si por ejemplo tengo una variable llamada car que es un char y otra llamada num que es un int, deberia poner num=atoi(car) para que en num me pusiera el valor del caracter que esta dentro de car (por ejemplo "3"), no?
Bueno, mejor les copio el trozo de programa...:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
void main()
{
FILE *f1;
int num, cont=0, cont2=0, files=0;
char fitxer[20], car;
printf("Escribe el fichero del retrato robot: ");
scanf("%s",&fitxer);
f1=fopen(fitxer,"r");
while(files!=5)
{
fscanf(f1,"%c",&car);
if(car=='n')
{
printf("n");
files++;
}
else
{
num=atoi(car);
fscanf(f1,"%c",&car);
while(cont!=num)
{
printf("%c",car);
cont++;
}
cont=0;
}
}
fclose(f1);
}
Pues en la linea del "num=atoi(car)" me da el error: 'atoi' : cannot convert parameter 1 from 'char' to 'const char *'
Pueden arientarme un poco y ayudarme a solucionar este problema??
Muchas gracias.
He buscado en este foro sobre la función atoi, y si por ejemplo tengo una variable llamada car que es un char y otra llamada num que es un int, deberia poner num=atoi(car) para que en num me pusiera el valor del caracter que esta dentro de car (por ejemplo "3"), no?
Bueno, mejor les copio el trozo de programa...:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
void main()
{
FILE *f1;
int num, cont=0, cont2=0, files=0;
char fitxer[20], car;
printf("Escribe el fichero del retrato robot: ");
scanf("%s",&fitxer);
f1=fopen(fitxer,"r");
while(files!=5)
{
fscanf(f1,"%c",&car);
if(car=='n')
{
printf("n");
files++;
}
else
{
num=atoi(car);
fscanf(f1,"%c",&car);
while(cont!=num)
{
printf("%c",car);
cont++;
}
cont=0;
}
}
fclose(f1);
}
Pues en la linea del "num=atoi(car)" me da el error: 'atoi' : cannot convert parameter 1 from 'char' to 'const char *'
Pueden arientarme un poco y ayudarme a solucionar este problema??
Muchas gracias.
atoi transforma un string, es decir una variable de tipo char *str o char a[N] a un numero entero.
Tu la estas aplicando a una variable de tipo char, y eso no puede ser.
Entre parentesis, las variables de tipo char, son numeros enteros, en realidad, lo unico que tendrias que haces es int val = a-'0';
Tu la estas aplicando a una variable de tipo char, y eso no puede ser.
Entre parentesis, las variables de tipo char, son numeros enteros, en realidad, lo unico que tendrias que haces es int val = a-'0';
No he entendido muy bien lo ultimo que mehas dicho de "int val = a-'0';". Donde tengo que ponerlo? Que variables son?
Segon dices, lo de mi programa tiene que ser un string, y no un char, entonces si declaro el car como car[1] seria un string de longitud 1, y luego al usar la variable en el programa deberia poner car[0] para usar el valor de dentro de la variable, peor me da le mismo error....
Gracias por la ayuda
Segon dices, lo de mi programa tiene que ser un string, y no un char, entonces si declaro el car como car[1] seria un string de longitud 1, y luego al usar la variable en el programa deberia poner car[0] para usar el valor de dentro de la variable, peor me da le mismo error....
Gracias por la ayuda
