Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 147
1

файлы с++ квадраты считает а в файл не пишет

09.03.2014, 15:47. Показов 2983. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вычислить сумму квадратов чисел от 1 до 30. Квадраты чисел предварительно записать в файл.
нужно квадраты записать в файл и при этом сами 30 чисел взять из файла


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
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
 
int main()
{
FILE *f; int txt;
cout << "File name ";
  char s[20];
  cin.getline(s, 20);
  f=fopen(s, "wt");
 
   cout << txt << " ";
   fwrite(&txt, sizeof(int), 1, f);
 
    int sum=0;
    for(int i = 1; i <=30; i++) {
         sum += pow(i,2);
    }
    cout <<"Summa kvadratov chisel ot 1 do 30 = " <<sum <<endl;
    
 system("PAUSE");
    return EXIT_SUCCESS;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2014, 15:47
Ответы с готовыми решениями:

Оконная программа: Дан файл вещественных чисел. Заменить в нем все элементы на их квадраты. - типизированные файлы
использовать типизированный файл, opendialog для открытия файла с числами (числа показываться будут...

Создать файл F, компоненты которого являются целыми числами. В файлы G и H записать кубы и квадраты компонент файла F.
Добрый день! помогите пожалуйста с задачами в Паскале. у самой не получается. Буду вам очень...

Не считает файлы в статистику
Даны 4 файла-лога с несколькими строками записей. нужно чтобы программа выгрузила...

Считает почему то только первый код, на остальные пишет что код не найден, хотя он есть в списке, не понимаю п
Написать процедуру поиска в списке, расположенном на рабочем листе с именем «Цены» активной рабочей...

23
Студент
56 / 56 / 38
Регистрация: 17.09.2012
Сообщений: 292
Записей в блоге: 2
09.03.2014, 15:54 2
Что бы писать в файл, есть команда fprintf
1
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 147
09.03.2014, 15:56  [ТС] 3
ладно и на этом спасибо
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
09.03.2014, 16:05 4
Лучший ответ Сообщение было отмечено kornelyk как решение

Решение

kornelyk, откуда возникла необходимость мешать сишные и плюсовые функции? Используйте std::fstream и будет Вам благо.
P.S. fwrite используется для неформатированного (нетекстового) вывода.
1
Студент
56 / 56 / 38
Регистрация: 17.09.2012
Сообщений: 292
Записей в блоге: 2
09.03.2014, 16:07 5
Лучший ответ Сообщение было отмечено kornelyk как решение

Решение

Цитата Сообщение от kornelyk Посмотреть сообщение
ладно и на этом спасибо

Нет, нет, Вы задавайте вопросы, все объясним Для работы с этим нужно подключить stdio.h
Сама функция выглядит так:
int fprintf(FILE *stream, const char *format, ...);
Вот пример работы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
  FILE *fp;
 
  if((fp=fopen("test", "wb"))==NULL) {
    printf("He удается открыть файл.\n");
    exit(1);
  }
 
  fprintf(fp, "Это тест %d %f", 10, 20.01);// пишем в fp, строку  и то что хотим видеть в файле.
  fclose(fp);
 
  return 0;
}
1
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 147
09.03.2014, 16:09  [ТС] 6
вооот! отлично) спасибо)
а чтобы еще и читала из файла?
0
126 / 125 / 62
Регистрация: 07.09.2013
Сообщений: 343
09.03.2014, 16:12 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    cout << "File name ";
    char s[20];
    cin >> s;
    ofstream out(s);
    for (int i=1; i < 31; i++)
        out<< i*i << endl;
    ifstream in(s);
    int sum=0;
    int t;
    while (in >> t){
        cout << t << endl;
        sum+=t;
    }
    cout << sum << endl;
}
1
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 147
09.03.2014, 16:15  [ТС] 8
wow! здорово) а можно вообще сделать чтобы он записывал это в файл *.txt ???
0
Студент
56 / 56 / 38
Регистрация: 17.09.2012
Сообщений: 292
Записей в блоге: 2
09.03.2014, 16:18 9
Для чтения из файла можно использовать fscanf()
int fscanf (stream, format-string [, argument ...]);
Например:
C++
1
2
3
4
5
6
7
8
9
const int n = 10;
char a[10];
float b;
int mas[n];
.......
fscanf(ft,"%s",&a);//из ft строковые данные в переменную-строку а
fscanf(ft,"%f",&b);// из ft вещественные данные в переменную вещественного типа b
for (int i = 0; i < n; i++)
    fscanf(ft,"%i",&mas[i]);
1
126 / 125 / 62
Регистрация: 07.09.2013
Сообщений: 343
09.03.2014, 16:19 10
Можно вводить .txt когда запрашивается File name. Например input.txt
1
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 147
09.03.2014, 16:20  [ТС] 11
вот это афигенно!!!
спасибо:**
0
Студент
56 / 56 / 38
Регистрация: 17.09.2012
Сообщений: 292
Записей в блоге: 2
09.03.2014, 16:21 12
Цитата Сообщение от kornelyk Посмотреть сообщение
wow! здорово) а можно вообще сделать чтобы он записывал это в файл *.txt ???
Что бы записать в *.txt, можно заранее создать такой файл и в программе написать, например так:
k = fopen("h:\ex.txt", "rt");
1
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 147
09.03.2014, 16:24  [ТС] 13
и последний вопрос) вот у меня будет файл с 30 цифрами и как записать так, чтобы программа взяла их оттуда?
0
Студент
56 / 56 / 38
Регистрация: 17.09.2012
Сообщений: 292
Записей в блоге: 2
09.03.2014, 16:29 14
Цитата Сообщение от kornelyk Посмотреть сообщение
и последний вопрос) вот у меня будет файл с 30 цифрами и как записать так, чтобы программа взяла их оттуда?
Можно использовать любой цикл.
C++
1
2
3
4
5
6
7
8
9
10
11
...
#define n 30
 
void main()
{
int mas[n];
FILE *fp;
fp = fopen(num.dat, "r")
for (int i = 0; i < n; i++)//можно использовать while,do-while
     fscanf(fp, "%i ", &mas[i]);
}
0
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 147
09.03.2014, 16:48  [ТС] 15
как-то не работает

Добавлено через 9 минут
а если программа будет читать из файла, то тогда все очень сильно поменяется?
0
Студент
56 / 56 / 38
Регистрация: 17.09.2012
Сообщений: 292
Записей в блоге: 2
09.03.2014, 17:01 16
Я, к сожалению не маг и не экстрасенс) Что именно не так делает программа?
Давайте, я по пробую угадать?
1>.cpp(28) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\.....\vc\include\stdio.h(237): см. объявление 'fopen'
?

вот этот код работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
#define n 30
 
using namespace std;
void main()
{
int mas[n];
FILE *fp;
fp = fopen("num.txt", "r");
for (int i = 0; i < n; i++)
     fscanf(fp, "%i ", &mas[i]);
fclose(fp);
for (int i = 0; i < n; i++)
 cout << " " <<mas[i];
_getch();
}
файл num.txt необходимо разместить в папке debug проекта и в папке с названием проекта.
Если ошибка такая, какая я написал, то
Нет, просто студия любит что бы ввод был защищен - scanf_s, отключается (как вариант): Проект-свойства-C/C++, Там будет пунктик Проверки SDL. Выбираем нет. (Нужно делать для каждого проекта, например при работе с файлами так же ругается на fopen).
Картинка не прикрепляется, если не понятно как исправить, я приклеил вот сюда картинку:
Не как не могу найти ошибку уже более часа
0
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 47
09.03.2014, 17:21 17
А я бы б вообще использовал поточный ввод вывод ifstream и ofstream или вообще fstream.Мне кажется с ними проще.Ну тут уж кому как угодно.
0
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 147
09.03.2014, 17:38  [ТС] 18
в 1.txt записаны числа от 1 до 30
на экран выводит сумму этих чисел и сами числа
а при открытии 2.txt там записаны квадраты этих чисел
а нужно бы еще сумму этих квадратов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    cout << "File name ";
    char s[20];
    cin >> s;
    ofstream out("2.txt");
    for (int i=1; i < 31; i++)
        out<< i*i << endl;
    ifstream in("1.txt");
    int sum=0;
    int t;
    while (in >> t){
        cout << t << endl;
        sum+=t;
    }
    cout << sum << endl;
}
0
Студент
56 / 56 / 38
Регистрация: 17.09.2012
Сообщений: 292
Записей в блоге: 2
09.03.2014, 17:39 19
Извините)) не туда посмотрел)))
0
Студент
56 / 56 / 38
Регистрация: 17.09.2012
Сообщений: 292
Записей в блоге: 2
09.03.2014, 17:55 20
Если я правильно понял суть задания: Есть два файла. в одном 30 чисел, во втором квадраты 30 чисел. Нам надо считать их из файла, вывести на печать, сосчитать их сумму чисел в каждом файле.
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
30
31
32
33
34
35
36
37
38
39
40
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
#define n 30
 
using namespace std;
 
int main()
{
    int mas[n], mas1[n];
    int Sum = 0;
    FILE *f1, *f2;
    f1 = fopen("1.txt","r");
     for (int i=0; i < n; i++)
         fscanf(f1, "%d", &mas[i]);
   //выведем сами числа
     fclose(f1);
     cout << endl;
      for (int i=0; i < n; i++)
      {
        cout << " " << mas[i]; 
        Sum+=mas[i];
      }
      cout << endl << "Summ: "<< Sum << endl;
      //открываем 2.txt
      f2 = fopen("2.txt","r");//как я понял тут записаны квадраты
      Sum = 0;
      for (int i=0; i < n; i++)
         fscanf(f2, "%d", &mas1[i]);
      fclose(f2);
      for (int i=0; i < n; i++)
      { 
        cout << " " << mas1[i]; 
        Sum+=mas1[i];
      }
      cout << endl << "Summa quadr: "<< Sum;
      _getch();
}
Миниатюры
файлы с++  квадраты считает а в файл не пишет  
Вложения
Тип файла: txt 1.txt (80 байт, 9 просмотров)
Тип файла: txt 2.txt (107 байт, 9 просмотров)
1
09.03.2014, 17:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2014, 17:55
Помогаю со студенческими работами здесь

Файл содержит числа, количество вводится с клавиатуры. Создать второй файл, содержащий квадраты этих чисел в обратном порядке
Задача : Файл содержит числа, количество вводится с клавиатуры. Создать второй файл, содержащий...

Не удаляет файлы и не пишет в бд
Ребят, простите пожалуйста меня незнающего... Имею следующее mysql_query ($query); $id = 0;...

пишет что .dbf файл не найден, хотя .accdb файл есть
куда мог подеваться файл с .dbf ? и как его вернуть, файл с расширением .accdb на месте.

Не удаётся удалить файл - Windows 10 пишет, что невозможно открыть файл INSTALL.LOG
Возникла проблема, что при попытке удалить файл игры в разделе Приложения и возможности Windows 10...

Слетели все файлы и 1С (пишет better_call_saul)
Здравствуйте, бухгалтер скачала письмо и распаковала зип папку, теперь на копме нет ни одного...

Что и в какие файлы пишет программа
Доброго всем здравия, телесного и духовного! Не могу разобраться как можно записать что-то в файл и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru