Не прочитать файл совсей таблицей ascii - C (СИ)
Формулировка задачи:
Добрый день, пытаюсь записать в массив из файла таблицу ascii, но почему то файл начинает заполняться заново. Кто может сказать, в чем проблема? Если заполнять обычными буквами, то всё нормально. Заранее спасибо.
#include <stdio.h> #include <stdlib.h> char key[301056]; void main(void) { FILE *fpp; char *p; char c; int s = 0; const char *filename = "key.txt"; fpp = fopen(filename, "r"); for (p = key; p - key < 500 - 1 && (c = getc(fpp)) != EOF; p++) { *p = c; } }
Когда мы доходим до символа substitute, то все ломается. Можно как нибудь сделать, чтобы этот символ был в массиве, но чтобы массив заполнялся?
http://rgho.st/private/66yZYbGbg/87ec1643bd4337d8082026667448bbf0 вот сам файл. Посмотрите пожалуйста в чем может быть проблема.
Решение задачи: «Не прочитать файл совсей таблицей ascii»
textual
Листинг программы
#include "stdafx.h" #include <stdio.h> #include <stdlib.h> static char pKey[400000]; int main() { FILE* pIn = fopen("key.txt","rb"); for (int ii = 0; ii < 500; ++ii) { int iChr = getc(pIn); if (iChr == EOF) { break; } pKey[ii] = (char)iChr; } fclose(pIn); return 0; }
Объяснение кода листинга программы
Выполняемый файл считывает файл key.txt
в двоичном формате, сохраняя каждый символ в массиве pKey
. Программа считывает 500 символов из файла. Если достигается конец файла (EOF), цикл прерывается. Функция fclose
закрывает файл после его чтения.
Вот список действий в коде:
- Включающие директивы:
-
include
stdafx.h
-
include
-
include
-
- Определение статической переменной:
- static char pKey[400000];
- Основная функция:
- int main()
- Открытие файла:
- FILE* pIn = fopen(
key.txt
,rb
);
- FILE* pIn = fopen(
- Цикл для чтения файла:
- for (int ii = 0; ii < 500; ++ii)
- Считывание символа из файла:
- int iChr = getc(pIn);
- Проверка на EOF:
- if (iChr == EOF)
- Прерывание цикла при достижении EOF:
- break;
- Запись символа в массив:
- pKey[ii] = (char)iChr;
- Закрытие файла:
- fclose(pIn);
- Возврат 0:
- return 0; В этом коде нет никаких математических операций или сложных структур управления. Это простой считыватель файлов, который читает двоичные данные из файла и сохраняет их в массиве.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д