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

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

Восстановить пароль Регистрация
 
 
kornelyk
 Аватар для kornelyk
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 141
09.03.2014, 15:47     файлы с++ квадраты считает а в файл не пишет #1
Вычислить сумму квадратов чисел от 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2014, 15:47     файлы с++ квадраты считает а в файл не пишет
Посмотрите здесь:

C++ WriteFileEx - не пишет в файл.
Создать новый файл, содержащий квадраты всех элементов исходного файла C++
C++ Криво пишет даные в файл
В файл пишет только первые два символа! C++
C++ Пишет в файл калябаляку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_include
Студент
 Аватар для _include
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
09.03.2014, 15:54     файлы с++ квадраты считает а в файл не пишет #2
Что бы писать в файл, есть команда fprintf
kornelyk
 Аватар для kornelyk
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 141
09.03.2014, 15:56  [ТС]     файлы с++ квадраты считает а в файл не пишет #3
ладно и на этом спасибо
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
09.03.2014, 16:05     файлы с++ квадраты считает а в файл не пишет #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
kornelyk, откуда возникла необходимость мешать сишные и плюсовые функции? Используйте std::fstream и будет Вам благо.
P.S. fwrite используется для неформатированного (нетекстового) вывода.
_include
Студент
 Аватар для _include
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
09.03.2014, 16:07     файлы с++ квадраты считает а в файл не пишет #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от 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;
}
kornelyk
 Аватар для kornelyk
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 141
09.03.2014, 16:09  [ТС]     файлы с++ квадраты считает а в файл не пишет #6
вооот! отлично) спасибо)
а чтобы еще и читала из файла?
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
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;
}
kornelyk
 Аватар для kornelyk
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 141
09.03.2014, 16:15  [ТС]     файлы с++ квадраты считает а в файл не пишет #8
wow! здорово) а можно вообще сделать чтобы он записывал это в файл *.txt ???
_include
Студент
 Аватар для _include
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
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]);
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
09.03.2014, 16:19     файлы с++ квадраты считает а в файл не пишет #10
Можно вводить .txt когда запрашивается File name. Например input.txt
kornelyk
 Аватар для kornelyk
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 141
09.03.2014, 16:20  [ТС]     файлы с++ квадраты считает а в файл не пишет #11
вот это афигенно!!!
спасибо:**
_include
Студент
 Аватар для _include
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
09.03.2014, 16:21     файлы с++ квадраты считает а в файл не пишет #12
Цитата Сообщение от kornelyk Посмотреть сообщение
wow! здорово) а можно вообще сделать чтобы он записывал это в файл *.txt ???
Что бы записать в *.txt, можно заранее создать такой файл и в программе написать, например так:
k = fopen("h:\ex.txt", "rt");
kornelyk
 Аватар для kornelyk
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 141
09.03.2014, 16:24  [ТС]     файлы с++ квадраты считает а в файл не пишет #13
и последний вопрос) вот у меня будет файл с 30 цифрами и как записать так, чтобы программа взяла их оттуда?
_include
Студент
 Аватар для _include
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
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]);
}
kornelyk
 Аватар для kornelyk
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 141
09.03.2014, 16:48  [ТС]     файлы с++ квадраты считает а в файл не пишет #15
как-то не работает

Добавлено через 9 минут
а если программа будет читать из файла, то тогда все очень сильно поменяется?
_include
Студент
 Аватар для _include
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
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).
Картинка не прикрепляется, если не понятно как исправить, я приклеил вот сюда картинку:
Не как не могу найти ошибку уже более часа
spectrum988
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 47
09.03.2014, 17:21     файлы с++ квадраты считает а в файл не пишет #17
А я бы б вообще использовал поточный ввод вывод ifstream и ofstream или вообще fstream.Мне кажется с ними проще.Ну тут уж кому как угодно.
kornelyk
 Аватар для kornelyk
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 141
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;
}
_include
Студент
 Аватар для _include
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
09.03.2014, 17:39     файлы с++ квадраты считает а в файл не пишет #19
Извините)) не туда посмотрел)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2014, 17:55     файлы с++ квадраты считает а в файл не пишет
Еще ссылки по теме:

Почему не пишет файл? C++
C++ Записать в файл KW квадраты всех четных чисел исходного файла, а в файл KB — кубы всех нечетных
C++ Fwprintf не пишет данные wchar_t в файл

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

Или воспользуйтесь поиском по форуму:
_include
Студент
 Аватар для _include
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
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 байт, 3 просмотров)
Тип файла: txt 2.txt (107 байт, 3 просмотров)
Yandex
Объявления
09.03.2014, 17:55     файлы с++ квадраты считает а в файл не пишет
Ответ Создать тему
Опции темы

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