Из файла выводятся нули - C (СИ)
Формулировка задачи:
В файле записано какое-либо число
#include <stdio.h> #include <conio.h> #include <locale.h> #include <string.h> #include <math.h> int main() { FILE * f2; setlocale(LC_CTYPE,""); unsigned char n,n1,w=0,razm1=3,q=0; f2=fopen("1.txt","rb"); int res=fscanf(f2,"%c",&n); printf("%c-",n); n1=n<<w; printf("%c-",n1); q=n1>>8-razm1; printf("%d",q); _getch(); return 0; }
Решение задачи: «Из файла выводятся нули»
textual
Листинг программы
#include "stdafx.h" FILE *f2; int _tmain(int argc, _TCHAR* argv[]) { FILE * f2; unsigned char n=0,n1,w=0,razm1=3,q=0; f2=fopen("1.txt","rt"); while (!feof(f2)) { fscanf(f2,"%d",&n); printf("%d-",n); n1=n<<w; printf("%c-",n1); q=n1>>8-razm1; printf("%d",q); } return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявляются переменные:
f2
- указатель на файл, который будет открыт для чтения;n
- переменная для хранения числового значения, считываемого из файла;n1
- переменная для хранения результата сдвига переменнойn
вправо на количество позиций, указанных в переменнойw
;w
- переменная для хранения количества позиций, на которое сдвигается переменнаяn
вправо;razm1
- переменная для хранения количества байтов, на которое разбивается число, считанное из файла;q
- переменная для хранения результата побитового сдвига переменнойn1
влево на количество позиций, указанных в переменнойrazm1
.
- Открывается файл
1.txt
для чтения с помощью функцииfopen()
. - Организован цикл while, который будет выполняться до тех пор, пока не достигнет конца файла (это контролируется с помощью функции
feof()
). - В каждой итерации цикла считывается число из файла в переменную
n
с помощью функцииfscanf()
. - Считанное число
n
выводится на экран с помощью функцииprintf()
. - Результат сдвига числа
n
вправо на количество позиций, указанных в переменнойw
, сохраняется в переменнуюn1
. - Сдвинутое число
n1
выводится на экран с помощью функцииprintf()
. - Результат побитового сдвига числа
n1
влево на количество позиций, указанных в переменнойrazm1
, сохраняется в переменнуюq
. - Число
q
выводится на экран с помощью функцииprintf()
. - После окончания цикла while выполняется функция
fclose()
для закрытия файла. - Возвращается 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д