Считывание из файла по символьно - 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;
}