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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2022, 13:31   #1
asa52
 
Регистрация: 09.12.2022
Сообщений: 6
По умолчанию Borland Builder c++ запись в файл переменных

Добрый день! Стоит задача в Borland Builder C++ 6.(2002 год)

У меня стоит задача сохранить две переменные:
Код:
for (j=0; j<m; j++)
   {
   r[j]=hr/2+hr*j;
   }
 
for (j=0; j<m; j++)
{
vsput[j]=(r[j]/(U*electron));
}

Эти переменные нужно записать в txt файл примерно вот так:

Код:
КодВыделить код
0.0 0.0
1.2 9.3
3.1 51.3
44 43.2
и т.п.
зависит от константы m

Всякие буковки из формулы у меня есть, они работают без проблем...нужно только сохранить эти числа в файл для дальнейшего их использования.

Сам пробовал это сделать через вот это
Код:
TStringList* sl= new TStringList();
sl->Add(r[j]+" "+q[j]);
sl->SaveToFile("result.txt");
delete sl;

В результате он сохранял только одну циферку которая никак не может быть циферкой из этих переменных.
Заранее благодарю за любую помощь!
asa52 вне форума Ответить с цитированием
Старый 20.12.2022, 04:54   #2
Пётр Седов
Форумчанин
 
Регистрация: 26.10.2022
Сообщений: 119
По умолчанию

Цитата:
Сообщение от asa52 Посмотреть сообщение
Сам пробовал это сделать через вот это
Код:
TStringList* sl= new TStringList();
sl->Add(r[j]+" "+q[j]);
sl->SaveToFile("result.txt");
delete sl;

В результате он сохранял только одну циферку
Потому что тут цикл нужен. И ещё, в C++ когда число «плюсуем» со строковым литералом (" "), это число не преобразуется в строку, а вместо этого происходит адресная арифметика, потому что строковый литерал неявно преобразуется в указатель. Надо использовать функции вроде FormatFloat:
Код:
TStringList* sl = new TStringList();
for (j = 0; j < m; j++) {
  sl->Add(FormatFloat("0.0", r[j]) + " " + FormatFloat("0.0", q[j]));
}
sl->SaveToFile("result.txt");
delete sl;
Код не компилировал, возможно вызовы функции FormatFloat надо оборачивать в AnsiString. А вообще, создать текстовый файл можно без всякого TStringList, например через stdio:
Код:
FILE* file = fopen("result.txt", "wt");
if (file == NULL) {
  Application->MessageBoxA("Файл не создался", "Ошибка", MB_OK);
  return;
}
for (j = 0; j < m; j++) {
  fprintf(file, "%.1f %.1f\n", r[j], q[j]);
}
fclose(file);
Пётр Седов вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Borland Builder c++ запись в файл asa52 Помощь студентам 4 12.12.2022 05:54
Разработать пакетный файл для вывода информации в файл о переменных среды Windows Ozma Помощь студентам 0 16.12.2016 19:16
Builder и Borland под DOS aank10 Общие вопросы C/C++ 2 29.06.2011 16:46
Borland C++ Builder Jasper92 Помощь студентам 3 09.12.2010 13:19
c++ Borland builder 4ika C++ Builder 1 27.11.2009 20:32