
gabrield
(usa Debian)
Enviado em 25/08/2009 - 18:39h
Você quer gravar um só caracter?
Se for isso, use getc(), e não gets()!
O seu exemplo está compilando, só está ecoando um "warinig", que nada mais é um aviso de que algo pode ser melhorado, substituido ou pode estar errado. Se estivesse dando erro, apareceria um "error:".
Modifiquei seu exemplo para pegar uma cadeia de caracteres sequenciais e grava-los em aquivo:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
FILE *fp;
char string[100];
int i;
fp=fopen("arq.txt","w"); /* Arquivo ASCII, para escrita */
if(!fp)
{
printf("\nErro na abertura do arquivo!");
exit(0);
}
printf("\nEntre com a string a ser gravada no arquivo: ");
/*gets(string);*/
scanf("%s", string);
for(i=0; string[i]; i++) putc(string[i],fp); //Grave a string, caracter a caracter
fclose(fp);
return 0;
}
[]'s