• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

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

  • Автор темы 203
  • Дата начала
2

203

Здравствуйте. Подскажите пожалуйста как работать с файлами в С++.
К примеру:
У меня есть какая то программа допустим это будет сложение чисел.
Я сделал её через консоль.
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 нужно вывести одно целое число - сумму чисел А и В.

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

203

Сказали как должна выгладить программа.
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;
}

И дело в библиотеке вроде.
 
W

Whatka

а с чем конкретно помочь?
программа практически написана,числа сложить вроде сможете
чтение -запись из файла? --->
 
2

203

Здравствуйте. Помогите пожалуйста создать массив при работе с файлами, а то пробую написать программу а выводит какую то ерунду.
Вот условие.
Без_имени_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

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

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


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

203

Здравствуйте. Может кто помочь с решением (алгоритмом) вот такой задачи.
Условие.
link removed
Заранее спасибо.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!