Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


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

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

Купить рекламу на форуме 20000 рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2011, 19:08   #1
stas135642
Пользователь
 
Регистрация: 31.10.2010
Сообщений: 39
По умолчанию Запись на файл/чтение данных с файла

Здраствуйте. Помогите с записью данных на файл и их последующим чтением.
Задание:
а)*в функции ввода исходные данные записывать в файл;
б)*в функциях обработки и вывода данные читать из файла, результат сохранять в файл;
В середине , когда происходит чтение данных из файла, выполняется задача, реализованная с помощью указателей (обязательно с помощью указателей):
Задан массив А(20). Определить знакопеременную сумму а1*–*а2*+*а3*–*а4*+*….
Код:
#include <stdafx.h>
#include <stdio.h>  // Обьявление
#include <conio.h>  // прототипов
#include <math.h>   // библио
#include <locale>   // течных
#include <string>   // функций
#include <iostream>
#include <windows.h> 
using namespace std;
void main(void)
{
setlocale(LC_ALL, "Russian");
FILE *file;
FILE *file1;
int i, A[20],*pA, S=0;
char name_file[20];
int cp = GetConsoleCP();
cout << "Введите имя файла и расширение для создания файла исходных данных: ";
SetConsoleCP(1251);
cin >> name_file;
SetConsoleCP(cp);
if ((file=fopen(name_file, "wt"))==NULL)
{
printf ("File could not be opened\n");
cout << "Введите имя файла и расширение для создания файла исходных данных: ";
SetConsoleCP(1251);
cin >> name_file;
SetConsoleCP(cp);
}
fprintf (file,"Исходные данные (20 значений через запятую):\n");
for (i = 0; i <= 19; i++)  
 {
printf ("Введите %d",i);
printf (" элемент");
scanf ("%d",&A[i]);
 }
fprintf (file,"A[20] = ");
for (i = 0; i <= 19; i++)  
 {
fprintf (file, " %d", A[i]);
}
fprintf (file, "\n*pA=%d,S=%d\n",*pA,S);
fclose (file);
cout << "Введите имя файла и расширение для чтения исходных данных: ";
SetConsoleCP(1251);
cin >> name_file;
SetConsoleCP(cp);
if ((file=fopen(name_file, "rt"))==NULL)
{
printf ("File could not be opened\n");
cout << "Введите имя файла и расширение для чтения исходных данных: ";
SetConsoleCP(1251);
cin >> name_file;
SetConsoleCP(cp);
}
for (i = 0; i <= 19; i++)  // Начало цикла
{if (i % 2 == 0)   // Условие выполниения цикла
      S += *pA;
      else 
      S -= *pA;
      pA++;
}
fclose (file);
cout << "Введите имя файла и расширение для записи результата: ";
SetConsoleCP(1251);
cin >> name_file;
SetConsoleCP(cp);
if ((file1=fopen(name_file, "wt"))==NULL)
{
printf ("File could not be opened\n");
cout << "Введите имя файла и расширение для записи результата: ";
SetConsoleCP(1251);
cin >> name_file;
SetConsoleCP(cp);
}
printf("Знакопеременная сумма элементов массива равна: %d\n", S); 
fprintf (file1,"Результат:");
fprintf (file1,"\nЗнакопеременная сумма элементов массива равна: %d",S);
fclose(file1);
getch();
}
Заранее благодарен. Если неохота рыться в этом коде , просто напишите подробнее про запись и считывание данных с файла (желательно с примером). Заранее спсб))
stas135642 вне форума Ответить с цитированием
Старый 24.02.2011, 20:20   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
void main(void)
void main не бывает
void в аргументах писать незачем.
Пиши просто int main()
Цитата:
#include <stdio.h>
#include <math.h>
Библиотеки из C лучше писать так:
Код:
#include <cstdio>
#include <cmath>
По теме - ты используешь функции из cstdio, но лучше обойтись без этой либы, ведь ты изучаешь С++, а там для работы с файлами используются потоки.
http://www.cplusplus.com/doc/tutorial/files/

Давай я тебе эту программу нормально сделаю. Ты только объясни, что такое знакопеременная сумма.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 24.02.2011 в 20:22.
Obey-Kun вне форума Ответить с цитированием
Старый 25.02.2011, 00:12   #3
stas135642
Пользователь
 
Регистрация: 31.10.2010
Сообщений: 39
По умолчанию

Насчет C++ ты не прав. Я изучаю C с элементами C++ . И еще один вопрос. Тебе непонятно определение знакопеременной суммы ??? (или это проверка на вшивость ??)

А int зачем приплетать ??? Я использую ток глобальные переменные , локальных переменных у меня нет .

Последний раз редактировалось Stilet; 25.02.2011 в 12:07.
stas135642 вне форума Ответить с цитированием
Старый 25.02.2011, 02:07   #4
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
Тебе непонятно определение знакопеременной суммы ??? (или это проверка на вшивость ??)
Погуглил. То есть для a, b, c, d это a-b+c-d...?

Цитата:
А int зачем приплетать ??? Я использую ток глобальные переменные , локальных переменных у меня нет .
Это здесь не при чём. По стандарту функция main должна быть int'ом.

Цитата:
Насчет C++ ты не прав. Я изучаю C с элементами C++ . И еще один вопрос. Тебе непонятно определение знакопеременной суммы ??? (или это проверка на вшивость ??)
Это что, так предмет и называется? Или это не по учёбе?
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 25.02.2011, 02:42   #5
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
void main не бывает
void в аргументах писать незачем.
Пиши просто int main()
зачем писать int main()
если просто можно написать void main()

и в конце просто не возвращать ничего...

стандарты си это позволяют)))
revaldo666 вне форума Ответить с цитированием
Старый 25.02.2011, 02:50   #6
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
зачем писать int main()
если просто можно написать void main()

и в конце просто не возвращать ничего...

стандарты си это позволяют)))
Ты его читал? Откуда тогда такие заявления? Лично я стандарт читал. Нет, не полностью, ключевые моменты.

main в C и C++ может выглядеть как int main() и как int main(int argc, char *argv[]). Никак иначе (ну разве что можно разными способами писать *argv[]). А вот писать при этом return не обязательно, при достижении "}" эта функция сама вернёт 0 (что означает "успешное завершение").
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 25.02.2011, 02:52   #7
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
Ты его читал? Откуда тогда такие заявления? Лично я стандарт читал. Нет, не полностью, ключевые моменты.

main в C и C++ может выглядеть как int main() и как int main(int argc, char *argv[]). Никак иначе (ну разве что можно разными способами писать *argv[]). А вот писать при этом return не обязательно, при достижении "}" эта функция сама вернёт 0 (что означает "успешное завершение").
ну а почему тогда нельзя использовать void main() если с ним тоже всё прекрасно работает?
revaldo666 вне форума Ответить с цитированием
Старый 25.02.2011, 02:54   #8
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Работает только в твоём компиляторе. И наверняка он при этом ругается. У меня вот оно вообще не собирается.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 25.02.2011, 02:56   #9
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

Да втомто и дело что запускается даже без ворнингов...ну хотя да...ты в чёмто прав))

на другой оси будут проблемы с запуском...
revaldo666 вне форума Ответить с цитированием
Старый 25.02.2011, 02:57   #10
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Да не только на другой ОСи, а на другом компиляторе. Всё не от ОС зависит, а от компилятора.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение\запись в файл VirtualAngel Помощь студентам 2 12.02.2011 12:54
Чтение и запись из/в файл Pirotexnik Общие вопросы C/C++ 7 28.01.2011 16:54
Чтение и запись в файл Dycek Общие вопросы C/C++ 0 18.01.2011 15:04
Чтение и запись в файл. Ky3Heu, Помощь студентам 0 01.01.2010 11:24
Чтение и запись в файл deagle05 Общие вопросы C/C++ 3 22.12.2009 00:11



Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS