Я хотел бы знать, почему моя программа получает неправильный результат. Мне просто нужно прочитать символы из файла, включая пробел, (.), (,) И другие, и вывести их в определенном строчном формате. В результате я получаю более 300 экземпляров чтения символов и их странное представление. Мне нужно напечатать фактический символ и его расположение в памяти. Ценить это!читать char из файла
34 instances of character :
35 instances of character ¼
36 instances of character ¼
37 instances of character ¼
#include <stdio.h>
int main()
{
char ch;
int characters[100];
int i,j,k;
int charCount = 0;
FILE *fPtr;
fPtr=fopen("input.txt", "r");
while(ch = fgetc(fPtr) != EOF)
{
i=0;
characters[i] = (char)ch;
i++;
}
int arrayLength = sizeof(characters)/sizeof(characters[0]);
for(j= 0; j < arrayLength; j++)
{
for(k=1; k < arrayLength; k++)
{
if(characters[j] == characters[k])
{
charCount++;
printf("%d instances of character %c in location %c \n", charCount, characters[j], &characters[j]);
}
}
}
}
'while (ch = fgetc (fPtr)! = EOF)' - er, приоритет оператора, не должен быть «ch = fgetc (fPtr)» в скобках? – Random832
Это звучит как вопрос домашней работы. Кроме того, вы не смотрите NULL, поэтому вы анализируете весь блок памяти независимо от того, сколько вы на самом деле пишете. – Wug
'location% c' ->' location% p' – BLUEPIXY