Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2012, 20:40   #1
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию Работа с файлами в 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 нужно вывести одно целое число - сумму чисел А и В.

Есть пример но он почему то не работает.
Код:
#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;
}
Подскажите пожалуйста как это сделать. Заранее спасибо.
803 вне форума Ответить с цитированием
Старый 08.09.2012, 21:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но он почему то не работает.
А он тебе и не подходит.
Код:
	ifstream i("d:\\1\\input.txt");
	ofstream o("d:\\1\\output.txt");
	int q,w;
	i>>q>>w;
	o<<(q+w);
	i.close();o.close();
	return 0;
И к нему
Код:
#include <fstream>
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.09.2012, 22:34   #3
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию

Спасибо за ответ.
Но дело в том что проверять программу будет машина и она не видит библиотеки кроме этой #include <stdio.h> .
Мне сказали что в настройка Visual studio надо сделать так чтобы библиотека не хранилась у меня на пк а была в самой программе (или что то вроде этого).
Как это сделать и что это вообще такое я хз. Заранее всем спасибо.

Это как должна выглядеть программа.
Код:
#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;
}
803 вне форума Ответить с цитированием
Старый 08.09.2012, 22:46   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
надо сделать так чтобы библиотека не хранилась у меня на пк а была в самой программе
Ух... Я бы свалил из ВУЗа где такое преподают.
Ты наверное что-то не та понял, ибо втиснуть стандартные библиотеки скорее невозможно чем просто.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.09.2012, 23:11   #5
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию

Может не так понял.
803 вне форума Ответить с цитированием
Старый 08.09.2012, 23:48   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Скажу так:
Для чтения делай fscanf (f, "%d%d%", &a, &b);//из одной строки
Для записи fprintf (f, "%d", a);//целых числел
Это если брать эталонный пример твой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.09.2012, 00:07   #7
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию

Я пробовал написать по примеру который я скинул но у меня не получается.
803 вне форума Ответить с цитированием
Старый 09.09.2012, 00:29   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так ты еще и не показал как пробовал
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.09.2012, 00:50   #9
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию

Попрошу не сминается так как в файлах вообще не понимаю. (хоть пример какой посмотреть а то вообще 0).
Код:
#include <stdio.h>
#include <fstream>
int main (){
	FILE *f;
	int a;
	double b;
	char c;
	char *d = new char[256];
//  Чтение 
	f=fopen("input.txt");//открытие файла для чтения
	fscanf (f, "%d%d%", &a, &b);//из одной строки
	fclose(f);//закрытие файла
    c=a+b;
//  Запись
	f=fopen("output.txt");
	fprintf (f, "%d", c);//целых числел
	fclose(f);//закрытие файла

	return 0;
}
803 вне форума Ответить с цитированием
Старый 09.09.2012, 09:51   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
int a;
double b;
Переменные разного типа, а запрашиваешь
Цитата:
"%d%d%"
Только целые.
Определись что-ли.
Либо b делай int и в файле целые пиши
либо маска - %d%f
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами С++/С yuliyayuliya Помощь студентам 4 14.03.2011 12:20
Работа с файлами Kazik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 18.05.2010 11:12
Работа с файлами Kazik Помощь студентам 2 16.05.2010 01:16
Работа с файлами vitalik007 Помощь студентам 13 29.08.2008 15:11