Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [С++] Дописать в файл


Автор: xxxDiablo 27.3.2007, 20:40
Задача: Дописать в файл пять введенных пользователем чисел

Нужно сделать в Borland C++ Console Wizard с применением самых простых опреторов(printf,for) и для работы с файлом таких как: FILE *fp; fopen/fopen; swrite/sread; потоки(еси надо) seek_set, seek_curr, seek_end, sprintf, fscanf;

Большая просьба комментировать действия и объяснять их.

Автор: xxxDiablo 11.4.2007, 17:10
И еще забыл: исходные данные, кроме констант, в программу должен вводить пользователь.

Автор: GIK 11.4.2007, 21:21
Код

#include<iostream>
#include<fstream>
#include <conio>
#include <cstdio>
using namespace std;

void main()
{
 int num[5], i, pos;
 cout<<"Vvedite chisla: "<<endl;
 for(i=0; i<5; i++)
 {
  cin>>num[i]; //Записываем данные в массив 
 }
 ofstream out("C://test/test.txt", ios::out | ios::binary); //Открываем файл в бинарном режиме
 if(!out){ //Если файл не открыт
  cout<<"Not File"<<endl;
  getch();
  return;
 }

 cout<<"Vvedite posiciu dlia zapisi:";
 cin>>pos; 
 pos--; //Инкрементируем т.к. индесность 
 out.seekp(pos); //Устанавливаем курсор записи

 out<<num; //Записываем весь массив в файл

 out.close();
 getch();
}

Автор: xxxDiablo 12.4.2007, 21:23
Вот тут я сам сделал,тока возникает одна проблема: мне нужно что прога добавляла числа в файл,а не заменяла их,т.е. после повторного применения проги в этот же файл должна добавлять в файл,а не заменять уже имеющиеся в нем 5 чисел. 


Код

#include "stdio.h"
#include "conio.h"
#define FNAME "d:Wnumbers.txt\0" 
#define N 5
void main()
{
char fname [20] = FNAME;
FILE *out;
float n;
puts("Создание файла");
printf("Введенные числа будут записаны в файл");
printf("%s\n", fname);
puts("После ввода каждого числа нажимайте <Enter>\n");
if ((out = fopen(fname, "wt")) == NULL)
{
printf("Ошибка открытия файла");
getch();
return;
}
for (int i = 0; i < N; i++)
{
printf("->");
scanf("%f", &n);
fprintf(out," %f",n);
}
fclose(out); 
printf("Введенные числа записаны в файл %s\n", fname);
puts("Для завершения нажмите <Enter>") ;
getch();
}




Автор: Dov 16.4.2007, 07:58
Замени: "wt" -> "a"

Автор: xxxDiablo 20.4.2007, 21:46
Цитата(Dov @ 16.4.2007,  07:58)
Замени: "wt" -> "a"

Все спасибо  smile ,препод принял 

Автор: Xenon 20.4.2007, 22:23
GIK, 
Код

pos--; //Инкрементируем т.к. индесность 

Опечатка в коде или в комментарии? smile
PS. А, уже неважно - человек сдал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)