Ну, этот код в любом случае не сможет прочитать ВЕСЬ файл в строку, как заявлено в условии - он умеет читать только самую первую строку.
Из этого следует, что после этих первых 5 символов у вас стоит конец строки, потому на этом и "обрывается" считывание файла.
Уточните, пожалуйста, условие задачи, чтобы я мог Вам помочь.
p.s.: cout вполне можно заместить на printf() или другую подобную функцию - лучше не использовать C++ ради одной строчки, где можно с ничуть не меньшим удобством использовать чистый Си.
Также хочется уточнить, зачем нужен участок кода "char* A".
Кстати, обязательно ли использовать rb+? Используя его, вы заявляете, что хотите открыть двоичный файл для чтения и записи, но скорее всего Вы хотите открыть обычный текстовый файл только для чтения (r), ну либо если всё же двоичный, то rb.
А пока задача не уточнена, предложу Вам переписать Ваш код переписать в таком виде:
Код:
#include <stdio.h>
#define BUF_SIZE 90
void main()
{
FILE *file;
char *file_name = "C:/zippo.mt7";
char buffer[BUF_SIZE];
file = fopen(file_name, "r");
fgets(buffer, sizeof(buffer), file);
printf("%s\n\n", buffer);
fclose(file);
}
Такое "извращение" над fgets() проведено ради того, чтобы защитить её от переполнения буфера, что с ней происходит буквально постоянно.
Тем не менее, лучше избегать использование функции fgets() - причину см. выше.