Я пытаюсь прочитать файл и напечатать все слова, которые есть в файле, игнорируя все остальные пробелы и символы. У меня он работает с strcpy, но выдает ошибку, и я пытаюсь использовать sprintf, но я действительно не понимаю, как эти функциональные слова. Он печатает случайные целые числа вместо строк.
Редактировать: я совершенно новичок в C, поэтому у меня не очень хорошо работают указатели.
FILE *file;
file = fopen("sample_dict.txt", "r");
int c;
int wordcount = 0;
int count = 0;
const char *a[10];
char word[100];
do {
c = fgetc(file);
//error statement
if (feof(file)) {
break;
}
if (isalpha(c) && count == 2) {
printf("%s\n", word);
memset(word, 0, sizeof(word));
count = 1;
wordcount++;
}
if (isalpha(c)) {
//strcat(word, &c);
sprintf(word, "%d", c);
continue;
}
count = 2;
continue;
} while (1);
fclose(file);
return (0);
return 0;
char
как целое число, когда используете%d
, вы можете напечатать его вот так:sprintf(word, "%c", c);
, но вы сбрасываете слово в каждом символе. лучше используйте счетчик и скопируйте в массив... - person SHR   schedule 10.10.2014