С++: Работа с файлами
Добавлено: 25 окт 2005, 21:53
1) Многоуважаемые коллеги, помогите разобраться, как можно выводить текст, находящийся в файле, если он находится не в первой строке.
Если я правильно понимаю, то команда
fprintf(add,"%s \n",j);
выводит строку до пробела с места, которое можно указать при помощи команды
fseek(add,10,SEEK_SET);
А вот что же делать, если хочется перейти на другую строку в файле, или, может, кто-нибудь может посоветовать более респектабельный вариант команд??
++
2) В следующем коде программы в файл записывается только два символьных массива, а числа из цикла for куда-то проподают, с чем это может ббыть связано??
void main(void)
{
int a=1, b=20, c, d;
char ch[15]; char p;
char s[10],l[10],j[15];
float k[100];
FILE *in, *out, *add;
in=fopen("Romeo.txt","w+");
puts("Enter s:\n");
gets(s);
puts("Enter l:\n");
scanf("%s",j);
fprintf(in,"%s \n",s);
fclose(in);
out=fopen("Romeo.txt","r+");
fscanf(in,"%s",&l);
printf("%s\n\n",l);
fclose(out);
in=fopen("Romeo.txt","a");
scanf("%d",&c);
fprintf(in,"%d \n",c);
for(int o=1;o<=4;o++)
{
printf("Vvedi p# %d\n",o);
scanf("%c\n",&p);
putc(p,in);
if(o==2)puts("\n\n\n");
}
fclose(in);
add=fopen("Romeo.txt","w");
fseek(add,10,SEEK_SET);
fprintf(add,"%s \n",j);
fclose(add);
getch();
}
Заранее огромное спасибо***
Если я правильно понимаю, то команда
fprintf(add,"%s \n",j);
выводит строку до пробела с места, которое можно указать при помощи команды
fseek(add,10,SEEK_SET);
А вот что же делать, если хочется перейти на другую строку в файле, или, может, кто-нибудь может посоветовать более респектабельный вариант команд??
++
2) В следующем коде программы в файл записывается только два символьных массива, а числа из цикла for куда-то проподают, с чем это может ббыть связано??
void main(void)
{
int a=1, b=20, c, d;
char ch[15]; char p;
char s[10],l[10],j[15];
float k[100];
FILE *in, *out, *add;
in=fopen("Romeo.txt","w+");
puts("Enter s:\n");
gets(s);
puts("Enter l:\n");
scanf("%s",j);
fprintf(in,"%s \n",s);
fclose(in);
out=fopen("Romeo.txt","r+");
fscanf(in,"%s",&l);
printf("%s\n\n",l);
fclose(out);
in=fopen("Romeo.txt","a");
scanf("%d",&c);
fprintf(in,"%d \n",c);
for(int o=1;o<=4;o++)
{
printf("Vvedi p# %d\n",o);
scanf("%c\n",&p);
putc(p,in);
if(o==2)puts("\n\n\n");
}
fclose(in);
add=fopen("Romeo.txt","w");
fseek(add,10,SEEK_SET);
fprintf(add,"%s \n",j);
fclose(add);
getch();
}
Заранее огромное спасибо***