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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2011, 08:27   #1
Fora
 
Регистрация: 14.06.2011
Сообщений: 7
Восклицание Работа с файлами

Доброго времени суток!
--
1.Есть файл "Pn.txt";
2.Есть формула S=1*2*N;
--
1.1. В файле "Pn.txt" содержится только одно число к примеру "60".
2.1. Вместо "N" необходимо подставить число из файла.
--
Как это сделать!
------
Ниже привел свою наработку, только не могу сделать подстановку N из файла.

Код:
#include <iostream> 
#include <windows.h>

using namespace std;

int main()

{
   SetConsoleOutputCP(1251);

          //S=1/(1*2*3)+1/(2*3*4)+1/(3*4*5)+…+1/(n*(n+1)*(n+2))

double n(0);
double result(0);
cout<<"Введите первый аргумент n = ";
cin>>n;
result=1/(1*2*3)+1/(2*3*4)+1/(3*4*5)+1/(n*(n+1)*(n+2));
cout<<"Результат вычислений:S="<<result<<endl<<endl;
system("pause");
return 0;
}

Последний раз редактировалось Stilet; 14.06.2011 в 09:22.
Fora вне форума Ответить с цитированием
Старый 14.06.2011, 08:41   #2
Fora
 
Регистрация: 14.06.2011
Сообщений: 7
По умолчанию

Сделал так, но чета не пойму, у меня чет выходит S=0 о_О
Код:
#include <windows.h>
#include <fstream>
#include <cstdlib>
#include <iostream>
using namespace std;


int main()
{
    SetConsoleOutputCP(1251);

    char filename[260] = "D:\\Pn.txt"; //путь к входному файлу
    char nStr[100] = ""; //временный буфер для записи данных из файла

    ifstream InFile(filename); //Входной файл

    if (!InFile.is_open())
    {
        system("color cf");
        cout << "Файл с данными не найден или недоступен.\n";
        system("pause");
        return 0;
    }

    InFile>>nStr;
    InFile.close();

    long N = atoi(nStr); //преобразовать строку в целое число

    if (N<=0) //проверить, хранится ли в N допустимое значение
    {
        system("color cf");
        cout << "Из файла получены неверные данные (N<1 или не является числом).\n";
        system("pause");
        return 0;
    }

    //N получено, приступаем к вычислению суммы
    double S = 0;

    //цикл по всем значениям i от 1 до N с шагом 1
    S=1/(1*2*3)+1/(2*3*4)+1/(3*4*5)+1/(N*(N+1)*(N+2));

    //вывод ответа
    cout << "При N равном " << N << " сумма S равна " << S << endl;



  system("pause");

    return 0;
}

Последний раз редактировалось Stilet; 14.06.2011 в 09:23.
Fora вне форума Ответить с цитированием
Старый 14.06.2011, 09:24   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты поставь точку прерывания на вычисление S и посмотри после запуска чему оно равно. ИМХО придется выражение еще приводить к (double) потому как все его элементы целого типа.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.06.2011, 09:30   #4
Fora
 
Регистрация: 14.06.2011
Сообщений: 7
По умолчанию

Спасибо я уже разобрался..
Код:
double N=atof(nStr); //Дробное
---
Так с этим я разобрался..
а как теперь быть вот с этим!
Есть файл "Chis.txt" в нем есть число "5769".
как его перевернуть?
т.е. нужно на выходе иметь результат "9675"...
Заранее очень благодарен...!!

Последний раз редактировалось Fora; 14.06.2011 в 09:34.
Fora вне форума Ответить с цитированием
Старый 14.06.2011, 09:58   #5
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

хоть и ответили уже, но не зряж кодил-то сидел=)))
Код:
int _tmain(int argc, _TCHAR* argv[])
{
	HANDLE	hFile;
	CHAR	szBuffer[255];
	DWORD	dwBytesRead;

	memset(szBuffer, 0, 255 * sizeof(CHAR));
	hFile = CreateFile	(L"E:\\Документы Саши\\Visual studio projects\\Console\\Console\\test.txt",
						FILE_ALL_ACCESS,
						FILE_SHARE_READ | FILE_SHARE_WRITE,
						NULL,
						OPEN_EXISTING, 
						FILE_ATTRIBUTE_NORMAL,
						NULL);
	if(hFile != INVALID_HANDLE_VALUE)
		ReadFile(hFile, szBuffer, 255, &dwBytesRead, NULL);
	DWORD i = 0;
	CHAR Buffer[255];
	memset(Buffer, 0, 255 * sizeof(CHAR));
	while (szBuffer[i] != '\0')
		i++;
	DWORD a = 0;
	for (long j = i-1; j >= 0; j--) {
		Buffer[a] = szBuffer[j]; //перевернуть строку
		a++;
	};
	Buffer[a] = '\0';
	std::cout << Buffer << std::endl;
	std::cin.get();
}
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 15.06.2011, 02:22   #6
Fora
 
Регистрация: 14.06.2011
Сообщений: 7
Восклицание

Сделал вот такой переворот, работает правильно.. Но нужна доделать немного =(
Этот код только консольный.
А мне необходимо, чтобы число бралось из файла, перевернуть его и снова вставить в файл.
Код:
#include <stdio.h>
#include <string.h>
#include <windows.h>
int main(void)
{
    int i, j;
    char s[256], tmp;

    printf("Enter text: ");
    fgets(s, sizeof(s), stdin);

    s[strlen(s)-1] = '\0';
    for(i = 0, j = strlen(s)-1; i < j; i++, j--) {
        tmp = s[i];
        s[i] = s[j];
        s[j] = tmp;
    }
    printf("Result: %s\n", s);

    system("pause");

    return 0;
}
Fora вне форума Ответить с цитированием
Старый 15.06.2011, 11:44   #7
Fora
 
Регистрация: 14.06.2011
Сообщений: 7
Восклицание

Ребят Надо срочно...
Дано натуральное число (вводится из файла). Определите число, полученное заменой порядка следования цифр заданного числа на обратный. Выведите это число на экран. Ответ вывести в окно консоли.
--
Код замены в предыдущем сообщении...
как подгрузить число из файла....
Очень срочно надо!
Fora вне форума Ответить с цитированием
Старый 15.06.2011, 23:06   #8
Alex456
Пользователь
 
Регистрация: 11.06.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Fora Посмотреть сообщение
Ребят Надо срочно...
Дано натуральное число (вводится из файла). Определите число, полученное заменой порядка следования цифр заданного числа на обратный. Выведите это число на экран. Ответ вывести в окно консоли.
--
Код замены в предыдущем сообщении...
как подгрузить число из файла....
Очень срочно надо!
Цитата:
#include <iostream>
using std::cout;
using std::cin;
#include<fstream>
using std::ios;
using std::ifstream;
#include <new>
using std::nothrow;

main()
{

long size;
char a;

ifstream in("1.txt", ios::in );
if (!in) exit(1);

in.seekg(0, ios::end);

size = (int)in.tellg();

for (int i=size-1; i>=0; i--)
{
in.seekg(i, ios::beg);
in.get(a);
cout<<a;
}

in.close();
cin.ignore();

return 0;
}
//00000000000000000000000000000
Alex456 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами в С Tasha_no Помощь студентам 0 26.12.2010 17:08
работа с файлами dima0268 Общие вопросы C/C++ 1 15.12.2009 17:22
Работа с файлами Stiker Общие вопросы C/C++ 1 10.04.2008 22:47
Работа с файлами Smith777 Помощь студентам 4 23.02.2008 05:08