Форум программистов, компьютерный форум CyberForum.ru

Строка + число - C++

Восстановить пароль Регистрация
 
Devastator1
4 / 4 / 0
Регистрация: 12.10.2010
Сообщений: 21
07.11.2010, 20:34     Строка + число #1
Приветствую! Дано:

Дана строка вида: "1+A/b+C+1/H+N"

где h=1/N

N=1..50;

И вывести полученные строки в текстовый файл. Т.е на выходе будет 50 строк.

Как заменить N и H в строке на числа?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KpeHDeJIb
 Аватар для KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
07.11.2010, 20:40     Строка + число #2
Цитата Сообщение от Devastator1 Посмотреть сообщение
Как заменить N и H в строке на числа?
C
1
sprintf(buffer, "1+A/b+C+1/%f+%d", 1.0f / N, N);
Ну или сразу в файл:
C
1
fprintf(pFile, "1+A/b+C+1/%f+%d\n", 1.0f / N, N);
Devastator1
4 / 4 / 0
Регистрация: 12.10.2010
Сообщений: 21
07.11.2010, 23:06  [ТС]     Строка + число #3
А если строка в таком виде:
C++
1
2
3
4
5
6
7
8
9
ofstream out("file.txt");
char *str[] = {"A+B+N",
              "H/1",
            "N+N+B+c"};
    for (int i=0;i<3;++i)
    {
        out.write(str[i],strlen(str[i]));
        out.put('\n');
    }
Добавлено через 1 час 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "stdafx.h"
#include <fstream>
#include <string>
#include<iostream>
#include <stdio.h>
using namespace std;
 
int main()
{
    int n=20;
    double h=0;
    int i=0;
    h=(1/n+1)*(1/n+1);
    i=n-1;
    char buf[BUFSIZ];
    FILE *fr;
    fr=fopen("file.txt","r+");
    for (n=0;n<20;++n)
    {
        fprintf(fr, "1+U1^2V1-4U1+a/%f(1-2U1+U2);\n",1.00f / n);
        fprintf(fr, "3U1+U1^2V1+a/%f(3-2V1+V2);\n",1.00f / n);
        fprintf(fr, "1+U%d^2V%d-4U%d+a/%f(U%d-1-2U1+Ui+1);\n",1.00f / n, i);
 
    }
    cout<<n<<endl;
    cout<<i<<endl;
    cout<<h<<endl;
system("pause");    
}
выводит в файл не корректно. i должно быть n-1, а выводятся большие числа.

исправьте плиз, где наврал.

Добавлено через 54 минуты
с этим разобрался.

еще вопрос: если у меня число типа double, как мне его корректно вывести fprintf ?

Добавлено через 16 минут
все, разобрался со всем.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
08.11.2010, 04:12     Строка + число #4
Цитата Сообщение от Devastator1
еще вопрос: если у меня число типа double, как мне его корректно вывести fprintf ?
%f - float, double
%Lf - long double
printf() и scanf() воспринимают спецификатор по-разному
Yandex
Объявления
08.11.2010, 04:12     Строка + число
Ответ Создать тему
Опции темы

Текущее время: 12:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru