нужна программа что считает количество слов в файле, количество одинаковых символов, и ищет палиндромы.
Хочу использовать массив. Указатели - никак не пойму зачем они и как ими пользоваться
Другие языки программирования и технологии
Как пользоватся fopen() в C++
Если у тебя небольшие текстовые файлы, то можешь считать все содержимое файла прямо в буфер в памяти, а потом просто работать уже этим буфером, как с длинной строкой или массивом. Как-то так:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
char *buf;
int sz;
// открыл файл
FILE *fd = fopen("test.c", "r");
if ( !fd ) {
printf("error open file\n");
return;
}
// узнал размер
fseek(fd, 0, SEEK_END);
sz = ftell(fd);
fseek(fd, 0, SEEK_SET);
// выделил нужное количество памяти
buf = malloc(sz + 1);
// прочитал содержимое файла
sz = fread(buf, 1, sz, fd);
fclose(fd);
buf[sz] = '\0';
// работаешь со строкой в памяти
printf("%s", buf);
free(buf);
return 0;
}
> To ra (предыдущий ответчик) Тогда уж проще отмаппить файл в память, чем копировать его.. .
Как мне попроще отмапить файл в память под виндой, под linux'ом и в контроллере с кастрированным DOS'ом, в котором никаких "отмапить" отродясь не было? Желательно, чтобы было поменьше кода и программа компилировалась для любой из систем, буду благодарен за совет.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
char *buf;
int sz;
// открыл файл
FILE *fd = fopen("test.c", "r");
if ( !fd ) {
printf("error open file\n");
return;
}
// узнал размер
fseek(fd, 0, SEEK_END);
sz = ftell(fd);
fseek(fd, 0, SEEK_SET);
// выделил нужное количество памяти
buf = malloc(sz + 1);
// прочитал содержимое файла
sz = fread(buf, 1, sz, fd);
fclose(fd);
buf[sz] = '\0';
// работаешь со строкой в памяти
printf("%s", buf);
free(buf);
return 0;
}
> To ra (предыдущий ответчик) Тогда уж проще отмаппить файл в память, чем копировать его.. .
Как мне попроще отмапить файл в память под виндой, под linux'ом и в контроллере с кастрированным DOS'ом, в котором никаких "отмапить" отродясь не было? Желательно, чтобы было поменьше кода и программа компилировалась для любой из систем, буду благодарен за совет.
Встречные вопросы:
- Искать какие палиндромы? Слова-палиндромы или фразы-палиндромы?
- Что ткаое слово? Последовательность символов, для которых isalpha() дает 1? Или последовательность, которая вводится через scanf("%s")?
Про указатели кники толстые пишут. Ты расчитываешь, те тут быренько на пальцах все объяснят?
To ra (предыдущий ответчик) Тогда уж проще отмаппить файл в память, чем копировать его...
- Искать какие палиндромы? Слова-палиндромы или фразы-палиндромы?
- Что ткаое слово? Последовательность символов, для которых isalpha() дает 1? Или последовательность, которая вводится через scanf("%s")?
Про указатели кники толстые пишут. Ты расчитываешь, те тут быренько на пальцах все объяснят?
To ra (предыдущий ответчик) Тогда уж проще отмаппить файл в память, чем копировать его...
указатели - http://programmersclub.ru/20/
fopen - http://www.cplusplus.com/reference/clibrary/cstdio/fopen/
это разные вещи. я так и не понял, о чем вопрос
fopen - http://www.cplusplus.com/reference/clibrary/cstdio/fopen/
это разные вещи. я так и не понял, о чем вопрос
никак
Похожие вопросы
- Учусь програмировать на C++ по книге "C++ для чайников".Проблема.
- Помогите срочно C#
- Помогите исправить ошибку в программе (c++).
- Зачем нужен C++, если есть C?
- Ещё тупой вопрос по C++ :)
- Почему многие отдают предпочтение C++ а не C# ?
- Учу C++! Уже знаю: типы данных, циклы. условия, привидения и т. д учу 5дней. вот программа! Как норм за 5 дней?
- Как в C++ приравнять переменную и текст? А то такую запись нельзя. А без этого задачу не решить
- Язык программирования C.
- Делаю нейронную сеть на C++. Как в C++ работать с микрофоном?