Из файла выводятся нули - 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;
}

Объяснение кода листинга программы

В этом коде:

  1. Объявляются переменные:
    • f2 - указатель на файл, который будет открыт для чтения;
    • n - переменная для хранения числового значения, считываемого из файла;
    • n1 - переменная для хранения результата сдвига переменной n вправо на количество позиций, указанных в переменной w;
    • w - переменная для хранения количества позиций, на которое сдвигается переменная n вправо;
    • razm1 - переменная для хранения количества байтов, на которое разбивается число, считанное из файла;
    • q - переменная для хранения результата побитового сдвига переменной n1 влево на количество позиций, указанных в переменной razm1.
  2. Открывается файл 1.txt для чтения с помощью функции fopen().
  3. Организован цикл while, который будет выполняться до тех пор, пока не достигнет конца файла (это контролируется с помощью функции feof()).
  4. В каждой итерации цикла считывается число из файла в переменную n с помощью функции fscanf().
  5. Считанное число n выводится на экран с помощью функции printf().
  6. Результат сдвига числа n вправо на количество позиций, указанных в переменной w, сохраняется в переменную n1.
  7. Сдвинутое число n1 выводится на экран с помощью функции printf().
  8. Результат побитового сдвига числа n1 влево на количество позиций, указанных в переменной razm1, сохраняется в переменную q.
  9. Число q выводится на экран с помощью функции printf().
  10. После окончания цикла while выполняется функция fclose() для закрытия файла.
  11. Возвращается 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы