Считывание из файла по символьно - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый вечер! Буду благодарна за любое содействие=) нужно считать из файла цифры(основная проблема у меня считывается 500 как 5,0,0 а надо ,500,) и записать в структуру в файле примерно написано так(первый элемент надо записать в структуру *[i].номер, следующие 4 значения в структуру *[i].м, )переходим на лругую строчку (первый элемент надо записать в структуру *[i].л, следующие 4 значения в структуру *[i].х ) и так далее 1 500 700 800 1100 0 580 480 390 300 -10 680 505 500 473 -20 750 560 640 910 -30 845 830 850 930 я тут набросала кое- что
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define FILENAME "1.txt"
#define SIZE 256
#define in 1;
#define out 0;
 struct g {int numb;
               int v; 
               int l;
              int h;
} *group;  
 
int main(void) 
{
    char buf[SIZE] = { 0 }, *text = NULL;
    FILE* file = fopen("1.txt", "rt");
    size_t i,n = 0; 
    int numWords=0;
    int readingWord =0; 
    char s[100];
   int sl,sm,sn,save;
char symb;
    sl=sm=sn=0;
    text = (char*)calloc(1, sizeof(char));
 
    while (fgets(buf, SIZE, file) != NULL)
    {
        if (i % 2 == 0) 
            text = (char*)realloc(text, SIZE * (i + 2));
 while(1)
 {
  symb=fgetc(list);
  if(feof(list)!='\n') break;
  if(symb!='\t')
  {
    
             }
  }
 }
 
       // strcat(text, buf);
      
        }
while
    
    printf("%s", text);
    
    fclose(file); 
    free(text);  
    return 0;
}

Решение задачи: «Считывание из файла по символьно»

textual
Листинг программы
#include <stdio.h>
 
int flgEOF;
 
int GetNumber(FILE *fi)
{
    int sgn=1,s=0;
    char c;
 
    while (1)
    {
        c=fgetc(fi);
        if (c==EOF)
        {
            flgEOF=-1;
            return 0;
        }
        if (c != ' ') break;
    }
 
    if (c == '-') 
        sgn=-1;
    else
        s=c-'0';
 
    while (1)
    {
        c=fgetc(fi);
        if (c==EOF)
        {
            flgEOF=-1;
            return 0;
        }
        if ((c == ' ') || (c == 10) || (c == 13)) break;
        s=s*10+(c-'0');
    }
    return s*sgn;
}
 
int main(int argc, char* argv[])
{
    FILE *fi;
    int r;
    flgEOF=0;
    if ((fi=fopen("123.txt","r")) == NULL)
    {
        printf("Error by open\n");
        return -1;
    }
    else
    {
        while (1)
        {
            if (flgEOF) break;
            r=GetNumber(fi);
            printf("%d \n",r);
        }
        fclose(fi);
    }
    return 0;
}

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


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

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

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