С++ Работа С Файлами

203

New Member
21.02.2012
2
0
#1
Здравствуйте. Подскажите пожалуйста как работать с файлами в С++.
К примеру:
У меня есть какая то программа допустим это будет сложение чисел.
Я сделал её через консоль.
C++:
#include "stdafx.h"
#include "iostream" 
using namespace std;

int main()
{
int a,b,sum;
cout<< "a= "; cin>>a;
cout<< "b= "; cin>>b;
sum=a+b;
cout<<"sum= "<<sum<<endl;
system("pause");
return 0;
}
А я бы хотел сделать через файлы.
Формат входного файла:

В единственной строке входного файла INPUT.TXT записано два натуральных числа через пробел, не превышающих 109.

Формат выходного файла:

В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число - сумму чисел А и В.

Подскажите пожалуйста как это сделать. Заранее спасибо.
 

203

New Member
21.02.2012
2
0
#2
Сказали как должна выгладить программа.
C++:
#include <stdio.h>
int main (){
FILE *f;
int a;
double b;
char c;
char *d = new char[256];
char z='\n';
// Чтение 
f=fopen("input.txt","r");//открытие файла для чтения
fscanf (f, "%d", &a);//целых числел
fscanf (f, "%lf", &b);//вещественных числел
fscanf (f, "%c%c", &z, &c);//символа
fscanf (f, "%s", d);//строки
fscanf (f, "%d%f%c%s", &a, &b, &c, &d);//из одной строки
fclose(f);//закрытие файла
// ...
// ...
// ...
// Запись
f=fopen("output.txt","w");
fprintf (f, "%d", a);//целых числел
fprintf (f, "%f", b);//вещественных числел
fprintf (f, "%c", c);//символа
fprintf (f, "%s", d);//строки
fprintf (f, "%d%f%c%s", a, b, c, d);//в строку
fclose(f);//закрытие файла

return 0;
}
И дело в библиотеке вроде.
 

203

New Member
21.02.2012
2
0
#5
Здравствуйте. Помогите пожалуйста создать массив при работе с файлами, а то пробую написать программу а выводит какую то ерунду.
Вот условие.
Без_имени_1.jpg
Вот что написал, но наверно ерунду.
C++:
#include <stdio.h>
int main (){
FILE *f;
int x;
int *d = new int[x];
// Чтение 
f=fopen("input.txt","r");//открытие файла для чтения
fscanf (f, "%d", &a);//целых числел
fscanf (f, "%d,%s", d);//строки
fclose(f);//закрытие файла
// ...
// ...
// ...
// Запись
f=fopen("output.txt","w");
fprintf (f, "%d", a);//целых числел
fprintf (f, "%d,%s", d);//строки
fclose(f);//закрытие файла

return 0;
}
Заранее спасибо.
 
R

rrrFer

Гость
#6
Код:
int x;
int *d = new int[x];
пройдись отладчиком и посмотри на значение переменной x в момент выделения памяти.

Х надо сначала считать из файла, а затем, выделить память.


ЗЫ. В задаче указаны диапазоны чисел, сравни их с диапазонами "int", который ты используешь.