Я пытаюсь подсчитать появление символа для строки.
У пользователя есть два варианта:
- сначала, отобразить результат на экране
- во-вторых, чтобы сохранить результат в файле, но имя файла будет строкой, введенной также пользователем
Моя настоящая проблема в том, что при сканировании имени файла он не работает. .
Часть моего кода, где count[]
имеет целое число, представляет собой вхождение каждого символа. Когда я попытался отладить код, мне показалось, что шаг сканирования out[]
строкового массива был пропущен, и он получил необычные символы, такие как ÿÿtþa
.
printf("Enter 1 if you want to output data on screen\nEnter 2 to output data to file : ");
int input;
scanf("%d", &input);
if(input == 1)
{
fprintf(stdout,"%s:\n\"%s\"\n", "characters count in this string", s);
fprintf( stdout, "%-20s%-4s\n", "character", "count");
for(int j = 0; j < 26; j++)
fprintf( stdout, "%-20c%-4d\n", j+65, count[j]);
}//end of if
else if(input == 2)
{
FILE *Ptr;
printf("enter file name : ");
char out[30]= {'\0'};
scanf("%29[^\n]", out);
if( (Ptr = fopen(out,"w")) == NULL)
printf("CAN NOT OPEN FILE\n");
else
{
fprintf(Ptr,"%s:\n\"%s\"\n", "characters count in this string", s);
fprintf( Ptr, "%-20s%-4s\n", "character", "count");
for(int j = 0; j < 26; j++)
fprintf( Ptr, "%-20c%-4d\n", j+65, count[j]);
}//end of else
fclose(Ptr);
}//end of else
}//end of main